[VBA] Ajout dans table seulement s'il n'existe pas déjà
ThomasBTSCPI1
-
ThomasBTSCPI1 -
ThomasBTSCPI1 -
Bonjour,
je me suis lancé dans le VBA depuis une semaine et je suis bloqué.
Mon cas est le suivant, j'ai une base de donnée sous access, dans laquelle se trouve la table Propriétaire.
J'ai créé un formulaire qui permet d'ajouter un propriétaire dans la base de donnée. Ca marche. Mais j'aimerais que si le propriétaire existe déjà dans la base, qu'il ne me le rajoute pas.
Voilà mon code :
Private Sub Bouton_Ajout_Proprietaire_Click()
Dim db As DAO.Database
Dim prop As DAO.Recordset
Dim rst As Recordset 'test
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT num_Proprio FROM PROPRIETAIRE where nom_proprio = 'Me.Nom' and prenom_proprio = 'Me.Prenom'")
Set prop = db.OpenRecordset("PROPRIETAIRE")
prop.AddNew
prop("nom_Proprio").Value = Me.Nom
prop("prenom_Proprio").Value = Me.Prenom
prop("DateNaissance_Proprio").Value = Me.Naissance
prop("tel_proprio").Value = Me.Tel
prop("adresse_rue_proprio").Value = Me.Adresse
prop("code_postal_Proprio").Value = Me.CodePostal
prop("ville_proprio").Value = Me.Ville
If rst.BOF Then
prop.Update
MsgBox "Propriétaire ajouté avec succès !", vbInformation
Else
MsgBox "Propriétaire existant!", vbInformation
End If
Set prop = Nothing
End Sub
Le problème vient surement des 'Me.Nom' et 'Me.Prenom' , surement une erreur d'apostrophe ou de guillemets. Pour l'instant, il m'ajoute le propriétaire même s'il existe déjà. Et si j'enlève les apostrophes, il me dit " Trop peu de paramètres, 2 attendus".
Une idée ?
Dans l'espoir d'une réponse,
je me suis lancé dans le VBA depuis une semaine et je suis bloqué.
Mon cas est le suivant, j'ai une base de donnée sous access, dans laquelle se trouve la table Propriétaire.
J'ai créé un formulaire qui permet d'ajouter un propriétaire dans la base de donnée. Ca marche. Mais j'aimerais que si le propriétaire existe déjà dans la base, qu'il ne me le rajoute pas.
Voilà mon code :
Private Sub Bouton_Ajout_Proprietaire_Click()
Dim db As DAO.Database
Dim prop As DAO.Recordset
Dim rst As Recordset 'test
Set db = CurrentDb
Set rst = db.OpenRecordset("SELECT num_Proprio FROM PROPRIETAIRE where nom_proprio = 'Me.Nom' and prenom_proprio = 'Me.Prenom'")
Set prop = db.OpenRecordset("PROPRIETAIRE")
prop.AddNew
prop("nom_Proprio").Value = Me.Nom
prop("prenom_Proprio").Value = Me.Prenom
prop("DateNaissance_Proprio").Value = Me.Naissance
prop("tel_proprio").Value = Me.Tel
prop("adresse_rue_proprio").Value = Me.Adresse
prop("code_postal_Proprio").Value = Me.CodePostal
prop("ville_proprio").Value = Me.Ville
If rst.BOF Then
prop.Update
MsgBox "Propriétaire ajouté avec succès !", vbInformation
Else
MsgBox "Propriétaire existant!", vbInformation
End If
Set prop = Nothing
End Sub
Le problème vient surement des 'Me.Nom' et 'Me.Prenom' , surement une erreur d'apostrophe ou de guillemets. Pour l'instant, il m'ajoute le propriétaire même s'il existe déjà. Et si j'enlève les apostrophes, il me dit " Trop peu de paramètres, 2 attendus".
Une idée ?
Dans l'espoir d'une réponse,
A voir également:
- [VBA] Ajout dans table seulement s'il n'existe pas déjà
- Table ascii - Guide
- Table des matières word - Guide
- Ymail.com existe - Forum Réseaux sociaux
- Table des annexes word ✓ - Forum Word
- Obtenir une adresse ymail - Forum Mail
3 réponses
Bonjour,
ceci devrait aller:
Set rst = Db.OpenRecordset("SELECT num_Proprio FROM PROPRIETAIRE where nom_proprio = '" & Me.Nom & "' and prenom_proprio = '" & Me.Prenom & "';")
Bonne suite
ceci devrait aller:
Set rst = Db.OpenRecordset("SELECT num_Proprio FROM PROPRIETAIRE where nom_proprio = '" & Me.Nom & "' and prenom_proprio = '" & Me.Prenom & "';")
Bonne suite
Une dernière chose,
en essayant d'ajouter comme critères la date de naissance, ça ne marche pas.
Set rst = db.OpenRecordset("SELECT num_Proprio FROM PROPRIETAIRE where nom_proprio = '" & Me.Nom & "' and prenom_proprio = '" & Me.Prenom & "' and DateNaissance_proprio = '" &Me.Naissance& " ';")
Pouvez-vous me dire dans quel cas utiliser la syntaxe ' " & mavariable & " ' ? Et que faire en cas de date et de chiffre ?
J'avais cru comprendre que :
en cas de lettre : ' " & mavariable & " '
en cas de chiffre : mavariable
en cas de date : #mavariable#
Mais apparemment non.
Merci par avance pour votre aide.
en essayant d'ajouter comme critères la date de naissance, ça ne marche pas.
Set rst = db.OpenRecordset("SELECT num_Proprio FROM PROPRIETAIRE where nom_proprio = '" & Me.Nom & "' and prenom_proprio = '" & Me.Prenom & "' and DateNaissance_proprio = '" &Me.Naissance& " ';")
Pouvez-vous me dire dans quel cas utiliser la syntaxe ' " & mavariable & " ' ? Et que faire en cas de date et de chiffre ?
J'avais cru comprendre que :
en cas de lettre : ' " & mavariable & " '
en cas de chiffre : mavariable
en cas de date : #mavariable#
Mais apparemment non.
Merci par avance pour votre aide.