Verifier la présence d'un champs (vba)
max59850
-
max59850 -
max59850 -
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
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
A voir également:
- Verifier la présence d'un champs (vba)
- Verifier compatibilite windows 11 - Guide
- Verifier un lien - Guide
- Vérifier si mot de passe piraté - Guide
- Word mettre à jour tous les champs ✓ - Forum Word
- Vérifier si une phrase est correcte - Accueil - Google
3 réponses
Bonjour
l'erreur est ici :
SQL = "SELECT * FROM Annee WHERE Date_vis='" & Me.calendrier & "';"
en
SQL = "SELECT * FROM Annee WHERE Date_vis=#" & Me.calendrier & "#;"
l'erreur est ici :
SQL = "SELECT * FROM Annee WHERE Date_vis='" & Me.calendrier & "';"
en
SQL = "SELECT * FROM Annee WHERE Date_vis=#" & Me.calendrier & "#;"
Salut,
plutôt que de lancer une requête pour ça, tu peux utiliser la fonction dlookup. Elle est bien plus rapide.
plutôt que de lancer une requête pour ça, tu peux utiliser la fonction dlookup. Elle est bien plus rapide.
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 ;)
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 ;)
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...).
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...).