[VBA] Ajout dans table seulement s'il n'existe pas déjà

Fermé
ThomasBTSCPI1 - Modifié par ThomasBTSCPI1 le 11/03/2013 à 19:41
 ThomasBTSCPI1 - 12 mars 2013 à 11:43
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,


3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
12 mars 2013 à 08:30
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
1
ThomasBTSCPI1
12 mars 2013 à 11:19
Génial ça marche !

Merci beaucoup !
0
ThomasBTSCPI1
12 mars 2013 à 11:43
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.
0