Bonjour,
J’ai un petit souci de programmation.
J'ai une zone de texte dans un formulaire dont je souhaite conserver la valeur, dans une variable, après la fermeture de celui-ci, afin d’effectuer une recherche grâce à cette valeur.
Voici mon code :
j’ouvre mon formulaire "Identification" sur un nouvel enregistrement :
Mais si le N° de sérialisation existe déjà, je souhaite donner la possibiliter à l'utilisateur de le modifier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Private Sub Saisie_des_données_Click() On Error GoTo Err_Saisie_des_données_Click Dim stDocName As String Dim stLinkCriteria As String Consult = 0 stDocName = "IDENTIFICATION" DoCmd.OpenForm stDocName, , , stLinkCriteria DoCmd.GoToRecord , , acNewRec Exit_Saisie_des_données_Click: Exit Sub Err_Saisie_des_données_Click: MsgBox Err.Description Resume Exit_Saisie_des_données_Click End Sub
Et je déclare la variable serial à ce niveau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Private Sub N°_de_sérialisation_AfterUpdate() 'verifie que le champ de saisie ne soit pas vide If (IsNull([N° de Sérialisation]) Or ([N° de Sérialisation] = vbNullString)) Then MsgBox "Saisie OBLIGATOIRE d'un N° de Sérial !", 48, "Erreur de saisie" Me.SetFocus Exit Sub Else 'Recherche si le N° de Sérial existe déjà Dim dbs As Database, rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("IDENTIFICATION") rst.FindFirst "[N° de Sérialisation]='" & [N° de Sérialisation] & "'" 'N° de Sérial inconnu passe au champ suivant If rst.NoMatch Then [Référence pièce].Locked = False [N° du four T3].Locked = False [Date T3].Locked = False [N° du four R2].Locked = False [Date R2].Locked = False [Anomalie].Locked = False [N° de série].Locked = False Else 'N° de Sérial existant ==> Message d'erreur Dim reponse reponse = MsgBox("Le Sérial existe déjà" & Chr(13) & "Voulez Vous changer la référence ?", vbYesNo, "*** Erreur de Saisie ***") If reponse = vbYes Then: serial = [N° de sérialisation] DoCmd.Close DoCmd.OpenForm "Identification", , , "[N° de Sérialisation] = serial " End If End If rst.Close dbs.Close Set rst = Nothing Set dbs = Nothing End Sub
Mais quand j'exécute le programme, j'ai une fenêtre qui s'affiche me demandant de rentrer une valeur pour la variable 'serial'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Option Compare Database Option Explicit Public serial As String
Et je ne vois pas comment résoudre ce problème.
Merci de votre aide.
Partager