Ajout d'une donnée dans une table si inexistante
Résolu
Loic_7447
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'ai créé une base de donnée qui permet de tenir à jour le stock d'outils d'un atelier.
Dans cette bbd, il y a :
- une table qui contient l'état du stock (avec la référence outil, le fournisseur, la quantité en stock et le type d'outil)
- une table qui contient l'ensemble des fournisseurs auprès des quels nous achetons des outils
- un formulaire qui permet d'intégrer la réception d'une nouvelle référence en stock (avec une case pour chaque champ de la table)
- et un dernier formulaire qui permet de sortir une référence du stock (en tapant simplement la référence)
J'aimerais que, lorsqu'on intègre une nouvelle référence dans la bbd, si le fournisseur saisi n'est pas présent dans la table fournisseur, il s'ajoute automatiquement dans cette table.
Voici mon code d'ajout de référence:
Merci d'avance pour votre aide !
J'ai créé une base de donnée qui permet de tenir à jour le stock d'outils d'un atelier.
Dans cette bbd, il y a :
- une table qui contient l'état du stock (avec la référence outil, le fournisseur, la quantité en stock et le type d'outil)
- une table qui contient l'ensemble des fournisseurs auprès des quels nous achetons des outils
- un formulaire qui permet d'intégrer la réception d'une nouvelle référence en stock (avec une case pour chaque champ de la table)
- et un dernier formulaire qui permet de sortir une référence du stock (en tapant simplement la référence)
J'aimerais que, lorsqu'on intègre une nouvelle référence dans la bbd, si le fournisseur saisi n'est pas présent dans la table fournisseur, il s'ajoute automatiquement dans cette table.
Voici mon code d'ajout de référence:
Private Sub btn_ajouter_Click()
Set db = CurrentDb
Set rs = db.OpenRecordset("Stock_atelier")
If Me.txt_reference = "" Or Me.txt_fournisseur = "" Or Me.txt_quantité = "" _
Or Me.txt_outil = "" Then
MsgBox ("Veuillez renseigner toutes les cases")
Else
rs.AddNew
rs!Référence = Me.txt_reference
rs!Fournisseur = Me.txt_fournisseur
rs!Quantité = Me.txt_quantité
rs!Type = Me.txt_outil
rs.Update
MsgBox ("Référence ajoutée avec succès")
txt_reference = ""
txt_fournisseur = ""
txt_quantité = ""
txt_outil = ""
End If
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
Merci d'avance pour votre aide !
A voir également:
- Ajout d'une donnée dans une table si inexistante
- Table ascii - Guide
- Table des matières word - Guide
- Ajout rapide snap - Forum Snapchat
- Ajout snap sans rien d'écrit - Forum Snapchat
- Demande d'ajout snap qui disparait ✓ - Forum Snapchat
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
quand tu partages du code VBA, peux-tu choisir "basic" comme type de code?
suggestion:
quand tu partages du code VBA, peux-tu choisir "basic" comme type de code?
suggestion:
Dim rsref As DAO.Recordset Set rsref = CurrentDb.OpenRecordset("fournisseur", dbOpenDynaset) rsref.FindFirst ("fournisseur='" + CStr(Me.txt_fournisseur) + "'") If rsref.NoMatch Then rsref.AddNew rsref!fournisseur = Me.txt_fournisseur rsref.Update End If
Merci de ta réponse, malheureusement je rencontre un problème : lorsque j’exécute le programme en cliquant sur le bouton "btn_ajouter", on m'affiche un message d'erreur : "erreur 3420, l'objet est incorrect ou n'est plus définit",et me surligne la ligne n°33 (rsref.Close).
Voici mon code avec ta solution intégrée (la ligne "Dim rsref as ... se trouve dans l'instruction Option compare database):
J'ai essayé, entre autre, d'enlever la ligne rsref.Close, il n'y avait plus de message d'erreur mais le texte saisit ne s'intégrait pas à ma table tFournisseurs.
il est recommandé d'ajouter option explicit en début de module (en dessous de la ligne :cela force à déclarer toutes les variables, c'est beaucoup mieux.