Buonasera a tutti, avrei bisogno di chiedere un consiglio.
Ho realizzato all'interno del mio database uno spazio dedicato a delle Note (appunti).
Ho una maschera principale (che ha diversi button, textbox, ecc...) e una sottomaschera continua. In questa sottomaschera rappresento attraverso alcune textbox il contenuto dei campi che provengono dalla tabella tblNote.
DoppioClick sulla textbox che mi interessa (così seleziono il record voluto) e si apre la maschera singola frmNote la quale mi va a rappresentare attraverso alcune textbox il contenuto della nota (testo nota, data nota, firma nota, ecc....)
'questo è il codice sulla textbox della sottomaschera
Private Sub txtNota_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmNote", OpenArgs:=[ID]
End Sub
All'apertura della frmNote:
'apro la form e la filtro in base all'ID corrente
Private Sub Form_Open(Cancel As Integer)
Filter = "[id] = " & OpenArgs
FilterOn = True
End Sub
All'interno della maschera frmNote per una comodità mia ho realizzato due pulsanti che consentono di spostarsi tra i record successivi e precedenti
Private Sub btnPrecedente_Click()
'spostati al messaggio precedente
FilterOn = False
On Error GoTo Down_Err
With CodeContextObject
On Error Resume Next
DoCmd.GoToRecord , "", acPrevious
End With
Down_Exit:
Exit Sub
Down_Err:
MsgBox Error$
Resume Down_Exit
End Sub
Private Sub btnSuccessivo_Click()
'spostati al messaggio successivo
FilterOn = False
On Error GoTo Down_Err
With CodeContextObject
On Error Resume Next
DoCmd.GoToRecord , "", acNext
End With
Down_Exit:
Exit Sub
Down_Err:
MsgBox Error$
Resume Down_Exit
End Sub
Da qui in poi ho il problema.
Siccome la maschera frmNote si apre filtrata in base all'ID, se usassi questi due button senza togliere il filtro (FilterOn = False) non potrei scorrere i record. Ma se ad esempio in tabella ci sono 5 record e io apro la maschera frmNote passando il record con ID nr. 3 e clicco il button di scorrimento (btnSuccessivo) per passare al record nr. 4, succede che mi riparte dal record nr. 2, poi ritorna al nr. 3 ed infine arriva al nr. 4.
Immagino che la cosa accade perché togliendo il filtro (FilterOn = False), vengo spedito al primo record, quindi premendo su btnSuccessivo passo al secondo record e così via....
C'è un modo per togliere il filtro, rimanere sul record corrente e passare a quelli successivi (o precedenti)? Oppure se potete suggerire un modo diverso per ottenere il risultato sperato senza stravolgere troppo il codice.
Grazie.