Aprire form determinato record

di il
5 risposte

Aprire form determinato record

Ciao a tutti, ho visto già alcuni topic su questo argomento, e grazie a quelli sono riuscito a realizzare il codice che mi permette di fare ciò che desidero, ovvero quando sono nel form in un determinato record, tramite un pulsante vorrei riuscire ad essere reindirizzato in un altro form per quel preciso record, e l'ho fatto tramite questo codice:
Private Sub Command313_Click()
On Error GoTo Err_Command313_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "Error_Summary"

stLinkCriteria = "[Drawing review N°]= " & Chr$(34) & Me![Drawing review N°] & Chr$(34)
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Command313_Click:
Exit Sub

Err_Command313_Click:
MsgBox Err.Description
Resume Exit_Command313_Click

End Sub
Avendo però 1800 record, tramite questo codice vengo reindirizzato nel secondo form avendo però filtrato il recordo di interesse, per cui se premo i pulsante per andare avanti tra i record successivi o precedenti mi viene dato un errore perchè è stato appunto applicato un filtro. Come posso far si di essere indirizzato dal form 1 in quel determinato record visualizzato al secondo form ma senza applicare filtri? E' possibile?
Spero di essere stato chiaro, grazie a tutti!

5 Risposte

  • Re: Aprire form determinato record

    Non devi operare in questo modo, nel senso che il Parametro WHERE della Funzione OpenForm funziona da Filtro.
    Quindi puoi operare in questo modo:
    
    Docmd.OpenForm "NomeForm",,,,k,acDialog,Me![Drawing review N°]
    Poi su LOAD della Form scrivi:
    
    If Len(Me.OpenArgs & vbNullstring)>0 then
       Me.RecordsetClone.findFirst "[Drawing review N°]= " & Chr$(34) & Me!OpenArgs & Chr$(34)
       If Not Me.RecordsetClone.NoMatch then
          Me.Bookmark=Me.RecordsetClone.Bookmark
       Else
          MsgBox "record non trovato"
       End If
    End if
    P.S. non si può chiamare un Campo in questo modo: [Drawing review N°] è veramente un controsenso...
  • Re: Aprire form determinato record

    Ho provato a corrggere il codice in questo modo, ma mi da errore in questo codice, nella seconda riga
    
    If Len(Me.OpenArgs & vbNullstring)>0 then
       Me.RecordsetClone.findFirst "[Drawing review N°]= " & Chr$(34) & Me!OpenArgs & Chr$(34)
       If Not Me.RecordsetClone.NoMatch then
          Me.Bookmark=Me.RecordsetClone.Bookmark
       Else
          MsgBox "record non trovato"
       End If
    End if
    L'ho inserito nel LOAD del Form che si deve aprire nel record scelto.

    Invece questo codice, con la tua correzione:
    
    Private Sub Command313_Click()
    On Error GoTo Err_Command313_Click
    
    Dim stDocName As String
    Dim stLinkCriteria As String
    
    stDocName = "Error_Summary"
    
    stLinkCriteria = "[Drawing review N°]= " & Chr$(34) & Me![Drawing review N°] & Chr$(34)
    DoCmd.OpenForm "Error_Summary", , , , , acDialog, Me![Drawing review N°]
    
    
    Exit_Command313_Click:
    Exit Sub
    
    Err_Command313_Click:
    MsgBox Err.Description
    Resume Exit_Command313_Click
    
    End Sub
    
    L'ho inserito per il pulsante nel primo Form che mi dovrebbe reindirizzare la form "Error_Summary".

    Continua a darmi errore.
  • Re: Aprire form determinato record

    Si ho fatto dei Copia/Incolla con dimenticanze...OpenArgs è una proprietà non un Oggetto:
    
    If Len(Me.OpenArgs & vbNullstring)>0 then
       Me.RecordsetClone.findFirst "[Drawing review N°]= " & Chr$(34) & Me.OpenArgs & Chr$(34)
       If Not Me.RecordsetClone.NoMatch then
          Me.Bookmark=Me.RecordsetClone.Bookmark
       Else
          MsgBox "record non trovato"
       End If
    End if
    L'altro codice invece è da cancellare tutto:
    
    Private Sub Command313_Click()
        DoCmd.OpenForm "Error_Summary", , , , , acDialog, Me![Drawing review N°]
    End Sub
  • Re: Aprire form determinato record

    Grazie mille, ora funziona!!!
    Solo che ora mi apre il secondo form come Pop-up, come posso evitare ciò? Prima non accadeva, e dalle proprietà è segnato come Pop-up -> NO
  • Re: Aprire form determinato record

    Ricky994 ha scritto:


    Grazie mille, ora funziona!!!
    Solo che ora mi apre il secondo form come Pop-up, come posso evitare ciò? Prima non accadeva, e dalle proprietà è segnato come Pop-up -> NO
    E' dovuto al parametro [acDialog].
    Leggi anche la guida magari....
Devi accedere o registrarti per scrivere nel forum
5 risposte