Dans ma base de données, j'ai un formulaire pour rechercher des produits (champs: id, nom, manufacturer_id [définir pour afficher le nom du fabricant], category_id, price). Je voudrais avoir la possibilité d'ajouter des fabricants à travers ce formulaire. J'ai donc créé le script vba mais ça ne marche pas. Encore quand j'entre un nouveau nom il me donne l'invite à "Sélectionner l'élément de la liste". Qu'est-ce que je fais mal ?Insérer un nouvel argument dans la table via un formulaire de recherche d'une autre table
Private Sub manufacturer_id_NotInTheList(NewData As String, Response As Integer)
Dim strSQL As String, strInfo As String
strInfo = "Manufacturer " & NewData & " is not on the list." & vbCrLf & "Add?"
If MsgBox(strInfo, vbYesNo + vbQuestion, "Element not on the list") = vbYes Then
strSQL = "INSERT INTO manufacturer (name, country, id_distributor) VALUES ('" & NewData & "','Undefined', '0');"
DoCmd.SetWarnings (False)
DoCmd.RunSQL strSQL
Response = acDataErrAdded
Else
Response = acDataErrContinue
NewData = ""
Me.manufacturer_id.Text = ""
End If
End Sub
Ne répond pas à la question, mais vous devez vraiment avoir DoCmd.SetWarnings True quelque part après avoir appelé DoCmd.RunSQL, ou vous pourriez manquer des avertissements importants (SetWarnings est un paramètre système et n'est pas hors de portée) . Vous devriez essayer de commenter vos DoCmd.SetWarnings existants et voir si l'insertion réussit réellement. Et vous pouvez alternativement utiliser mon code SQLRun(), que j'ai posté sur SO un bazillion fois - il ne nécessite pas de muck avec SetWarnings et c'est en fait plus sûr (DoCmd.RunSQL appliquera des mises à jour incohérentes au lieu d'échouer entièrement sur une erreur). –