Bonjour,
Voila, j'ai un fomulaire comprenant un sous formuilaire en mode feuille de donnée.
I l y a dans ce sous frm, un champ "AA". Je souhaiterais qu'a la qu'a la mise à jour de ce champs, VB vérifie si dans une table lièe le nom de cette personne existe deja dans cette base.
Voici le premier code que j'ai essayé :
et j'ai essayé celui aussi :
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 Private Sub nomouv_AfterUpdate() 'Declaration des variables Dim cnn As ADODB.Connection Dim Rst As ADODB.Recordset Dim strSQL As String Dim ctrl As String Set cnn = New ADODB.Connection cnn.Open "Provider=Microsoft Jet 4.0 OLE DB Provider;" & _ "Data Source=H:\Appli\XXX\Dorsale\XXX_princip.mdb" ' Ouvrir la table saisieheure Set Rst = New ADODB.Recordset strSQL = "SELECT * FROM saisieheure WHERE codouv= chr(34) & nomouv.Value & chr(34);" Rst.Open strSQL, cnn, adOpenDynamic, adLockOptimistic, adCmdText While Not Rst.EOF MsgBox Rst("codouv") & _ vbCrLf & Rst("AnneeSemaine") Rst.MoveNext Wend ' Libérer les objets Rst.Close Set Rst = Nothing cnn.Close Set cnn = Nothing End Sub
Dans les deux cas j'ai la même erreur : Erreur d'exécution '-2147217904 (80040e10)' :
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 Private Sub nomouv_AfterUpdate() 'Declaration des variables Dim cnn As ADODB.Connection Dim Rst As ADODB.Recordset Dim strSQL As String Dim ctrl As String Set cnn = New ADODB.Connection cnn.Open "Provider=Microsoft Jet 4.0 OLE DB Provider;" & _ "Data Source=H:\AppliESI\Pointeuse 1.0\Dorsale\Appli_pointeuse_princip.mdb" ' Ouvrir la table saisieheure Set Rst = New ADODB.Recordset strSQL = "SELECT * FROM saisieheure WHERE codouv= [Forms]![Frm_saisie_BT]![Saisie_heure_BT sous-formulaire].Form![nomouv];" Rst.Open strSQL, cnn, adOpenDynamic, adLockOptimistic, adCmdText While Not Rst.EOF MsgBox Rst("codouv") & _ vbCrLf & Rst("AnneeSemaine") Rst.MoveNext Wend ' Libérer les objets Rst.Close Set Rst = Nothing cnn.Close Set cnn = Nothing End Sub
aucune valeur donnée pour un ou plusieurs des parametres requis
Je pense que mon soucis, est de faire référence au controle du formulaire car si je metça fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part strSQL = "SELECT * FROM saisieheure WHERE (codouv = "xy")
: quelqu'un pourrait-il medire ou je me suis trompé?
Merci d'avance.
Partager