Vb6+sql

Fermé
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008 - 8 sept. 2008 à 18:57
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 9 sept. 2008 à 14:29
bonjour tt le monde,
je travail avec VB6
j'ai une table ACCESS2003,contenant plusieur champs y compris un champs nomé Date Execution de type date.
la connection est reussie.
j'ai fais une requette sql permettant de selectionner tout les colonnes avec une Date Execution entre 2date d et f saisies par l'utilisateur et par suite il me retourne le nombre de colonne.
Mais ca marche pas,svp aidey moi à le faire tourner correctement.
le code est le suivant:


Dim RS1 As New ADODB.Recordset
Dim d As String
Dim f As String
Dim x As Integer

d = InputBox("Entrer la première date", "Affaires Executées")
f = InputBox("Entrer la deuxième date", "Affaires Executées")
d = CDate(d)
f = CDate(f)

sql = "Select * From T1 where [Date Execution] Between " & d & " And " & f & ""
If RS1.State = adStateOpen Then RS1.Close
Set RS1 = New ADODB.Recordset
RS1.Open sql, db, adOpenDynamic, adLockOptimistic
RS1.MoveFirst
x = 0
Do While Not rs.EOF
x = x + 1
rs.MoveNext
Loop
MsgBox (x)
A voir également:

9 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 sept. 2008 à 13:56
par exemple :

d = ap_SQLArgDate(Cdate(d))

;o)
1
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
9 sept. 2008 à 14:08
ca tourne!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeercci
oooooooooooooooooooof,en fin
merci infiniment,t'es vraiment le big boss ici
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
9 sept. 2008 à 14:13
desolé polux 31,
comment afficher le résultat de cette requette dans une data grid ou dans une flex grid?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 sept. 2008 à 10:48
Bonjour,

Essaies avec cette requête :

sql = "Select * From T1 where Date Execution > #" & d & "# And Date Execution < #" & f & "#"

;o)
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
9 sept. 2008 à 12:20
bonjour,
merci pour ta réponse mais lors de la compilation (ave macpremieredate et madeuxiemedate) on m'affiche encore une erreur:
erreur syntaxe(oprérateur absent) dans l'expression 'date execution > #mapremiredate# and date execution< #madeuxiemedate#'
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 sept. 2008 à 12:30
Je ne vois pas ... sauf qu'il manque un espace ici : date execution< #madeuxiemedate#' après execution. En plus l'erreur doit afficher les valeurs de mapremièredate et madeuxiemedate ...
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
9 sept. 2008 à 12:41
oui l'erreur affiche les valeurs de la premiére et le deuxieme date.
En utlisant le code que j'ai posté hier,l'erreur est :
bof ou eof est égal à true ou l(enregistrement actuel a été supprimé.L'opération demandée nécessite un enregistrment actuel.
je pense que le problemme n'est pas dans la requette.
merci
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 sept. 2008 à 12:46
Il me semble qu'il faut que les 2 dates à tester soient dans la table.

As-tu fait un test juste avec : "Select * From T1" ?

;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
9 sept. 2008 à 12:56
Le test avec "Select * From T1" est reussi
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
9 sept. 2008 à 13:20
Comment faire pour la requette ' select * from T1 where Date Execution between d and f ' ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 sept. 2008 à 13:24
oups ma réponse est passé à l'as :o(

Apparemment la date dans Access est stockée au format US ("mm/dd/yyyy") et c'est ce format qui est utilisé pour les requêtes.

Voici un code permettant de convertir une date Française vers une date US en la formatant pour l'insérer dans un chaîne SQL : (source Developpez.com)

Function ap_SQLArgDate(ByVal vDate As Date) As String
On Error Resume Next
    If Not IsNull(vDate) Then
        ap_SQLArgDate = "#" & Format$(vDate, "mm/dd/yyyy") & "#"
    End If
End Function


;o)
0
ingstat Messages postés 49 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 10 septembre 2008
9 sept. 2008 à 13:49
desolé pour cette question banale,
mais comment appeler cette fonction pour mes les deux variable d et f.(syntaxe)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 sept. 2008 à 14:29
Si ma mémoire est bonne, pour un datagrid, il faut un composant Microsoft ADO Data contrôle posé sur le UserForm. Il faut configurer le composant dans les propriétés pour le connecter à la base. Ensuite il faut mettre la requête dans la propriété RecordSource. Un fois ça fait, tu fais le lien du datagrid avec le compsant Adodc dans DataGrid1.DataSource = adodc1

0