Requete

Signaler
Messages postés
3
Date d'inscription
mardi 1 avril 2003
Statut
Membre
Dernière intervention
10 mai 2011
-
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
-
bonjour

les requêtes ci après s’exécutent mais elles ne retournent ps des données, j'arrive pas à comprendre pourquoi


set rst3 dbs.OpenRecordset("SELECT volume u FROM table1 WHERE Vanne '" & a & "' AND date1 BETWEEN " & (x - 1) & " AND " & (y + 1) & " ")

X et Y sont des dates

Set rst3 = dbs.OpenRecordset("SELECT veau FROM vanne1 WHERE (date1 <= " & (y - 1) & " and date1 >= " & (x + 1) & ") and Vanne = '" & a & "' ")

Merci

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

"SELECT volume u FROM"
Que sont 'volume' et 'u' ? Deux champs séparés ?
Alors il faut une virgule de séparation

On ne fait pas des soustractions ou additions de date comme cela. Il faut utiliser les fonctions adéquates : DateAdd et DateDiff

Que vaut ta variable 'a' ?

Between est la bonne solution (plutôt que les < And > )

Rappel des règles SQL de base :
Si le champ est déclaré ***dans la table*** de type :
- Texte : Encadrer les valeurs par des apostrophes '
- Date : Encadrer les valeurs par des dièses #
- Numérique : pas d'encadrement
De plus, si le nom d'une table ou d'un champ comporte des caractères spéciaux (accents, espaces ...), il faut encadrer le nom de ces table ou champ par des crochets droits [ et ]

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
[img]http://allproj
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
Bonjour,

x+1 et y+1, ça donne quoi comme code ? Car ajouter ou retirer 1 à une date n'a pas de sens (minutes, heures, jours, ...).

Ensuite, tu ne précise pas le SGBD que tu utilises.

Mon site