VBA Requete sql Access

Résolu
cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007 - 12 janv. 2006 à 15:31
cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007 - 16 janv. 2006 à 12:47
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

cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
16 janv. 2006 à 11:02
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
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
14 janv. 2006 à 07:02
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
0
cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
16 janv. 2006 à 12:47
Fallait simplement mettre DAO au lieu de ADODB et viré la ligne Set rs= New....
0