Syntaxe INSERT INTO et SELECT
Bonjour,
Alors voilà mon problème : J'ai fait un code VBA qui recupère un Id (id de la cartouche) et qui doit l'insérer dans une autre table (table imprimante car les 2 tables sont liées).
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Private Sub Commande22_Click()
Dim stockConso As DAO.Database
Dim db As Database
' Dim req1 As DAO.Recordset
Set db = CurrentDb()
Dim idDuLieu As Integer
Dim idDeLaCartouche As Long
db.Execute "INSERT INTO Cartouche([Reference],[Designation],[PrixUnitaire],[QuantitéEnStock]) VALUES ('" & Texte7.Value & "','" & Modifiable9.Value & "','" & Texte13.Value & "','" & Modifiable11.Value & "')"
If Modifiable23.Value = "Oui" Then
idDuLieu = "SELECT idLieu FROM Lieu WHERE NomLieu = Modifiable25.Value"
idDeLaCartouche = "SELECT idCartouche FROM Cartouche WHERE Reference = Texte7.Value"
db.Execute "INSERT INTO Imprimante ([idCartouche],[Marque],[Reference],[idLieu]) VALUES ('" & idDeLaCartouche & "','" & Texte5.Value & "','" & Texte7.Value & "','" & idDuLieu & "')"
Else
idDeLaCartouche = "SELECT Cartouche.idCartouche FROM Cartouche WHERE Cartouche.Reference ='" & Me.Texte7 & "'"
db.Execute "INSERT INTO Lieu ([NomLieu]) VALUES ('" & Texte20.Value & "')"
idDuLieu = "SELECT idLieu FROM Lieu WHERE NomLieu = Texte20.Value"
db.Execute "INSERT INTO Imprimante ([idCartouche],[Marque],[Reference],[idLieu]) VALUES ('" & idDeLaCartouche & "','" & Texte5.Value & "','" & Texte7.Value & "','" & idDuLieu & "')"
End If
MsgBox ("L'ajout a été pris en compte")
End Sub |
En gros, l'utilisateur utilise ce formulaire pour ajouter une nouvelle imprimante.
Si le lieu est dans la liste des lieux existants , il répond oui (Modifiable23) et donc il faut juste récupérer le nouveau id de la cartouche et insérer le tout dans la table Imprimante.
Si c'est un nouveau lieu (réponse non donc dans le ELSE), il faut ajouter un lieu, récupérer le tout et insérer dans la table Imprimante.
Il me trouve une erreur de syntaxe sur la ligne idDeLaCommande et également pour récupérer l'id du Lieu :
Code:
idDeLaCartouche = "SELECT Cartouche.idCartouche FROM Cartouche WHERE Cartouche.Reference ='" & Me.Texte7 & "'"
Merci d'avance pour votre aide
Récupérer le dernier id autonumero
Salut à tous,
Voilà j'ai aussi le même souci, je veux récupérer le dernier id(autonumero) de ma table "Cause" saisi à partir d'un formulaire et l'associer à une autre table liée "Action" à cette dernière. J'ai utilisé la fonction dlookup() mais elle insert à la table "Action" le premier id de ma table "Cause".
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Private Sub Execute_Click()
Dim db As Database
Set db = CurrentDb()
Dim idDeLaCause As Long
Dim sql As String
db.Execute "INSERT INTO Cause(TCause) VALUES ('" & Me.Causes & "')"
db.Execute "INSERT INTO Action ([TAction],[NumCause]) VALUES ('" & Me.Actions & "','" & idDeLaCause & "')"
'End If
MsgBox ("L'ajout a été prise en compte")
End Sub |
J'ai même tenter à utiliser une requête qui récupère le dernier id(autonumero) de la table "Cause"
Code:
1 2
| sql = "SELECT MAX(NumCause) AS MAxEnreg FROM Cause" et l'ajouter à la fontion dlookup()
idDeLaCause = DLookup("NumCause", "Cause", "sql") |
mais il ya un message d'erreur "opération annulée".
Merci pour votre aide.