Vb6+sql

ingstat Messages postés 49 Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
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)
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    par exemple :

    d = ap_SQLArgDate(Cdate(d))

    ;o)
    1
    1. ingstat Messages postés 49 Statut Membre
       
      ca tourne!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeercci
      oooooooooooooooooooof,en fin
      merci infiniment,t'es vraiment le big boss ici
      0
    2. ingstat Messages postés 49 Statut Membre
       
      desolé polux 31,
      comment afficher le résultat de cette requette dans une data grid ou dans une flex grid?
      0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Essaies avec cette requête :

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

    ;o)
    0
    1. ingstat Messages postés 49 Statut Membre
       
      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
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
    1. ingstat Messages postés 49 Statut Membre
       
      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
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ingstat Messages postés 49 Statut Membre
     
    Le test avec "Select * From T1" est reussi
    0
  7. ingstat Messages postés 49 Statut Membre
     
    Comment faire pour la requette ' select * from T1 where Date Execution between d and f ' ?
    0
  8. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  9. ingstat Messages postés 49 Statut Membre
     
    desolé pour cette question banale,
    mais comment appeler cette fonction pour mes les deux variable d et f.(syntaxe)
    0
  10. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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