docmd.gotorecord avec une variable comme critère
Bonjour à tous,
J'ai un form frmstint avec une ref [stnN] depuis lequel je veux ouvrir un autre form frmsetup dans lequel j'ai un lien avec la table de stint [stnsetup]
Donc à l'ouverture du form je veux qu'il vérifie s'il existe deja un enregistrement dans la table setup avec la ref du stint.
Si ca existe alors il ouvre le form setup sur cet enregistrement, si ca n'existe pas il me crée un nouvel enregistrement dans la table setup avec [sntsetup]=[stnN]
Grace à l'aide déja recue ici je suis pas mal avancé mais bien sur je bloque sur la fin :)
Voila ce que j'ai
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Dim db As dao.Database: Set db = CurrentDb
Dim rst As dao.Recordset: Set rst = db.OpenRecordset("tsetup", dbOpenDynaset)
Dim rqstnsetup As Long
On Error Resume Next
Call rst.FindFirst("[stnsetup] = " & Forms("frmstint").Controls("StnN°"))
If rst.NoMatch Then
Debug.Print "pas de setup"
'Pas trouvé, ajoute l'enregistrement
rst.AddNew
rst![StnSetup] = Forms("frmstint").Controls("stnN°")
rst.Update
Debug.Print "setup crée"
End If
Debug.Print "setup existant"
rqstnsetup = DLookup("stnsetup", "rqsetupstint")
DoCmd.OpenForm "frmsetup"
DoCmd.GoToRecord , , [StnSetup] = rqstnsetup
End Sub |
Je vois que la détection d'enregistrement existant fonctionne parce que j'ai le setup existant dans le debug print, mais il ouvre le form à la première page de setup et pas à celle issue de la requete que je stocke dans la variable rqstnsetup.
Par contre si je pars sur un nouveau stint il me met bien dans le debug print setup crée, mais il n'y a rien de neuf dans le form setup (toujours au début et pas de nouveau setup crée) ALORS QUE L'ENREGISTREMENT EST DANS LA TABLE SETUP....
Je ne comprends pas ou je me trompe....(à part sur le docmd.gotorecord bien sur)
Merci de votre aide