VBA Requete sql Access [Résolu]

Signaler
Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007
-
cs_jordinette
Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007
-
Bonjour
sur access lorsque l'on fait une requete sur un champs monétaire (0,00?) il faut le caractère @ avant la valeur. comme on met #Date#.
genre de requete:

Select Nom, Prenom, salaire From Personnel Where Salaire <> @0,00?

je ne sais pas qu'elle est la bonne syntaxe puisque là j'ai l'erreur comme quoi le type est incompatible. Or qd je tape direct la requete sql sur access sans passer par le code vba et sans le @, ça marche....
Jordinette

3 réponses

Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007

Bon le problème ne vient même pas de la partie "monétaire" de la requete...
qd je fais le code suivant il me sort un pb d'incompatibilité de type (erreur '13')...

Private Sub Cmdafficher_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

date1 = datedebut.Value
date2 = datefin.Value

sql1 = "SELECT Count([Base sinistre 04].[Paiemts Fr]), Avg([Base sinistre 04].[Paiemts Fr]), Sum([Base sinistre 04].[Paiemts Fr]) FROM [Base sinistre 04];"

Set rs = CurrentDb.OpenRecordset(sql1)
msgbox (rs(0) & rs(1) & rs(2))
rs.close

End Sub

si je colle cette même requête dans Access celà marche je ne comprends pas... Pourtant ce code est exécuté dans le VBa d'Access...
Jordinette
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 192 internautes nous ont dit merci ce mois-ci

Messages postés
809
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
29 septembre 2010
6
Salut Jordinette,

Encadres les non valeurs par des simple quotes '

En se qui concerne les valeurs monétaires, à mon avis le probleme doit
venir du séparateur décimal: Remplace la virgule par un point et vois
se que ça donne



ex:

"SELECT * FROM TABLE WHERE total <>" & Replace(txtValeur.text, "," , ".")


ou



"SELECT * FROM TABLE WHERE total <>" & Replace("0,00", "," , ".")



Sinon tu peux utiliser la focntion Val()









Dans ton cas un simple,



Select Nom, Prenom, Salaire From Personnel Where Salaire <> 0



devrait être bon...




++

Zlub
Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007

Fallait simplement mettre DAO au lieu de ADODB et viré la ligne Set rs= New....