Verifier la présence d'un champs (vba)

Fermé
max59850 - Modifié par max59850 le 6/02/2012 à 18:53
 max59850 - 8 févr. 2012 à 10:20
Bonjour,

J'aimerai vérifier la présence d'un champ Date_vis de la table année qui est unique,
si il existe je passe a la procédure suivante sinon il faut que j'ajoute la date à la table,
ce code me donne une erreur sur la ligne
"Set rsa = db.OpenRecordset(SQL)" il est dit type de donnée incompatible dans l'expression du critère, j'ai beau chercher , je ne trouve pas ce qui cloche, sauriez vous m'aider ? merci

ci-dessous un bout de mon code :

Set rsdata = db.OpenRecordset("annee")

Dim SQL As String
Dim rsa As Recordset
SQL = "SELECT * FROM Annee WHERE Date_vis='" & Me.calendrier & "';"
Set rsa = db.OpenRecordset(SQL)
If (rsa.EOF) Then
'ajouter mes donnée

rsdata.AddNew
rsdata!Date_vis = Forms!MENUVISITE!calendrier
rsdata.Update
rsdata.Close

Else
'rien faire
End If



3 réponses

moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
6 févr. 2012 à 19:14
Bonjour

l'erreur est ici :

SQL = "SELECT * FROM Annee WHERE Date_vis='" & Me.calendrier & "';"

en


SQL = "SELECT * FROM Annee WHERE Date_vis=#" & Me.calendrier & "#;"
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
7 févr. 2012 à 10:40
Salut,

plutôt que de lancer une requête pour ça, tu peux utiliser la fonction dlookup. Elle est bien plus rapide.
0
Merci moiced59 pour la solution et d'avoir pris le temps de voir l'erreur, cela dit je ne connais pas cette histoire de dièses ^^

blux, je suis en Bac+2 et notre prof nous laisse un peut nous dépatouiller si j'ose dire donc je ne connaissait pas cette fonction, c'est sympa, peut-être elle me servira plus tard ;)
0
blux Messages postés 26006 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
7 févr. 2012 à 21:13
Les # sont les séparateurs officiels pour les format date et heure.
De plus, lorsque tu utilises de telles comparaisons, tu risques très vite d'être ennuyé avec le format de date, qui est soit anglo-saxon (mm/jj/aaaa) soit français (jj/mm/aaaa), ce sera l'occasion de faire de la gymnastique de manipulation de chaines.

Quant au dlookup, comme toutes les fonctions de domaine (dsum, dcount, davg...), il permet en une ligne d'obtenir des résultats qui sont souvent longs à programmer (requêtes SQL...).
0
merci chef ;)
0