Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Objet requis dans exécution d'une requête

2 réponses
Avatar
Bear76
Bonjour à la communauté,

J'ai un petit souci avec l'exécution d'une requête Ajout via
l'évènement Click() dans un formulaire.
CurrentDb.Execute ("INSERT INTO Tbl1 ( Chp2, Chap3, Chp4 ) " & _
"SELECT Tbl2.Chp1, Tbl2.Chp2, Tbl2.chp3 " & _
"FROM Tbl2 " & _
"WHERE (((Tbl2.Chp1)= " &
Formulaires.NomdemonForm.Controls(Chp1) & ")) ")

Lorsque j'exécute le clic, j'ai un message Objet requis qui s'affiche !
Auriez-vous une idée ?
Merci d'avance.

2 réponses

Avatar
ejc
Salut,
L'événement Click c'est sur ton Formulaire NomdemonForm ?
Si Oui :
1-Déjà : déclare donc une variable du genre Dim SqlStr as String dans la
procédure
2-Initialise ta variable :
SqlStr="INSERT INTO Tbl1 ( Chp2, Chap3, Chp4 ) SELECT Tbl2.Chp1, Tbl2.Chp2,
Tbl2.chp3 FROM Tbl2 "
SqlStr=SqlStr & "WHERE Tbl2.Chp1=" & Me.MachinTruc
'Ce sera beaucoup plus lisible et modifiable que les 4 ou 5 lignes de ta
requête (c'est mon avis)
ATTENTION : si ton contrôle (que j'ai appelé Me.MachinTruc) est du texte tu
modifies la ligne précédente en :
SqlStr=SqlStr & "WHERE Tbl2.Chp1='" & Me.MachinTruc & "'" ou en (plus long,
mais moins risqué à cause de l'apostrophe qu'il peut y avoir dans
MachinTruc)
SqlStr=SqlStr & "WHERE Tbl2.Chp1=" & Chr(34) & Me.MachinTruc & Chr(34)
...
CurrentDb.Execute (SqlStr)
Ta procédure pourrait donc ressembler à ça :
'------
Private Sub Form_Click()
Dim SqlStr As String
SqlStr = "INSERT INTO Tbl1 ( Chp2, Chap3, Chp4 ) SELECT Tbl2.Chp1,
Tbl2.Chp2, Tbl2.chp3 FROM Tbl2 "
SqlStr = SqlStr & "WHERE Tbl2.Chp1=" & Chr(34) & Me.MachinTruc & Chr(34)
CurrentDb.Execute (SqlStr)
End Sub
'----
A+
Jero

"Bear76" a écrit dans le message de news:
%
Bonjour à la communauté,

J'ai un petit souci avec l'exécution d'une requête Ajout via l'évènement
Click() dans un formulaire.
CurrentDb.Execute ("INSERT INTO Tbl1 ( Chp2, Chap3, Chp4 ) " & _
"SELECT Tbl2.Chp1, Tbl2.Chp2, Tbl2.chp3 " & _
"FROM Tbl2 " & _
"WHERE (((Tbl2.Chp1)= " &
Formulaires.NomdemonForm.Controls(Chp1) & ")) ")

Lorsque j'exécute le clic, j'ai un message Objet requis qui s'affiche !
Auriez-vous une idée ?
Merci d'avance.




Avatar
Bear76
Bonsoir Jero,
Tout simplement génial, merci.
@+
ejc a utilisé son clavier pour écrire :
Salut,
L'événement Click c'est sur ton Formulaire NomdemonForm ?
Si Oui :
1-Déjà : déclare donc une variable du genre Dim SqlStr as String dans la
procédure
2-Initialise ta variable :
SqlStr="INSERT INTO Tbl1 ( Chp2, Chap3, Chp4 ) SELECT Tbl2.Chp1, Tbl2.Chp2,
Tbl2.chp3 FROM Tbl2 "
SqlStr=SqlStr & "WHERE Tbl2.Chp1=" & Me.MachinTruc
'Ce sera beaucoup plus lisible et modifiable que les 4 ou 5 lignes de ta
requête (c'est mon avis)
ATTENTION : si ton contrôle (que j'ai appelé Me.MachinTruc) est du texte tu
modifies la ligne précédente en :
SqlStr=SqlStr & "WHERE Tbl2.Chp1='" & Me.MachinTruc & "'" ou en (plus long,
mais moins risqué à cause de l'apostrophe qu'il peut y avoir dans MachinTruc)
SqlStr=SqlStr & "WHERE Tbl2.Chp1=" & Chr(34) & Me.MachinTruc & Chr(34)
...
CurrentDb.Execute (SqlStr)
Ta procédure pourrait donc ressembler à ça :
'------
Private Sub Form_Click()
Dim SqlStr As String
SqlStr = "INSERT INTO Tbl1 ( Chp2, Chap3, Chp4 ) SELECT Tbl2.Chp1,
Tbl2.Chp2, Tbl2.chp3 FROM Tbl2 "
SqlStr = SqlStr & "WHERE Tbl2.Chp1=" & Chr(34) & Me.MachinTruc & Chr(34)
CurrentDb.Execute (SqlStr)
End Sub
'----
A+
Jero