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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
 idDeLaCartouche = "SELECT Cartouche.idCartouche FROM Cartouche WHERE Cartouche.Reference ='" & Me.Texte7 & "'"

Merci d'avance pour votre aide