Bonjour,
J'ai un souci avec un formulaire dépendant et je ne comprend pas ce qui ne va pas.
J'ai un formulaire indépendant contenant une listbox. Si je double-clique sur un de ses éléments, un formulaire dépendant s'ouvre et ses champs sont remplis grâce à une requête. Pour cela, j'utilise DoCmd.OpenForm et une clause where en paramètre.
Dans le formulaire dépendant, j'ai écrit du code dans la procédure Form_Open mais, selon le débogueur en mode Pas à pas détaillé, on ne rentre jamais dans cette procédure et ce code n'est jamais exécuté. Pourquoi ? Je ne sais pas ...
J'ai aussi écrit du code dans la procédure Form_BeforeUpdate et il ne s'exécute pas non plus (pourtant si je change la valeur de l'un des champs et que je ferme le formulaire avec la croix, la mise à jour est faite !).
Enfin, dans ce formulaire dépendant, j'ai un bouton servant à enregistrer les modifications dans la table (présent car avant ce formulaire était indépendant et j'essaie désespérément de le transformer en dépendant) mais lorsque je clique dessus, j'ai le message d'erreur suivant :
"L'expression Sur clic entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. La déclaration de la procédure ne correspond pas à la description de l'événement ou de la procédure de même nom."
Pour info, voici le code dans le formulaire indépendant :
Et ceux dont je vous ai parlé dans le formulaire dépendant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub lstClients_DblClick(Cancel As Integer) DoCmd.OpenForm "frmFicheClient", , , "NumCl = " & Me.lstClients, , , "modif" End Sub
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 Private Sub Form_Open() If Not IsNull(Me.OpenArgs) Then If Me.OpenArgs = "modif" Then Me.modifCl = True With Cl .nom = Me.txtNomClient.Value .prenom = Me.txtPrenomClient.Value .adresse = Me.txtAdresseClient.Value .cp = Me.txtCPClient.Value .ville = Me.txtVilleClient.Value .telephone = Me.txtTelClient.Value .dateInsc = Me.txtDateInscClient.Value End With MsgBox ("Client double-cliqué : " & vbCrLf & Cl.nom & vbCrLf & Cl.prenom & vbCrLf & Cl.adresse & vbCrLf & Cl.cp & vbCrLf & Cl.ville & vbCrLf & Cl.telephone & vbCrLf & Cl.dateInsc) For Each ctrl In Me.Controls Select Case ctrl.Name Case "txtPrenomClient" ctrl.Enabled = False Case "txtDateNaissClient" ctrl.Enabled = False Case "txtDateInscClient" ctrl.Enabled = False Case "cmdAjoutClient" ctrl.Enabled = False ctrl.Visible = False Case "cmdModifClient" ctrl.Enabled = False ctrl.Visible = True End Select Next ctrl End If End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Form_BeforeUpdate(Cancel As Integer) If Me.txtNomClient.Value <> Me.txtNomClient.OldValue Then MsgBox ("Ancienne valeur : " & Me.txtNomClient.OldValue & vbCrLf & _ "Nouvelle valeur : " & Me.txtNomClient.Value) Else MsgBox ("Valeurs identiques") Cancel = True Exit Sub End If End SubPouvez-vous m'aider svp ? Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub cmdModifClient_Click() 'J'ai masqué avec un commentaire tout le contenu de cette procédure et le message d'erreur s'affiche quand-même ... End Sub
Partager