Urgent code sql

brown_knight -  
 brown_knight -
Bonjour,

pour fair une selection de C.A réaliser entre 2 dates j'ai créer un code sql :
sql = "SELECT * FROM Client WHERE d_C Between #" & CDate(DTPicker1.Value) & "# And #" & CDate(DTPicker2.Value) & "#"

mais le pb que avec ce code il me donne pas parfois la selection exacte
est ce que ce code est correcte ?????????????????

11 réponses

  1. Krysstof Messages postés 1659 Statut Membre 295
     
    Le code me parait correct.

    Coté format de la date, quel est le format en base de donnée (année - mois -jour, mois-jour-année, jour-mois-année??)

    fais un echo d'un select de d_C et un echo de CDate(DTPicker1.Value) et vérifie que tu n'ais pas un probleme

    genre en base c'est en anglais, M J A , et ton selecteur en francais J M A... dans ce cas, il faut traiter un poil les valeur du datepicker avant de les mettre dans la requete.
    0
  2. brown_knight
     
    SI mon ami
    le formt de la date sur mon base de donnée est : JMA
    0
  3. Krysstof Messages postés 1659 Statut Membre 295
     
    bon, ben la il faut plus d'information

    language utilisé
    moteur de la base de donnée
    schema de la table avec definiion des champ
    et le résultat du debugging que je t'ai demandé de faire:
    contenu de la valeur du datepicker
    contenu (extrait) de la colonne date de ta table
    0
  4. brown_knight
     
    language utuliser c visual basic 6 avec une base de donnée access, c une simple form dans mon projet qui permet de montre le C.A réaliser dans une periode donnée
    la basse de donnée (gclients.mdb)
    la table (Client)
    les champs son tt correctes et la formt de la date sur la base de donnée et le format de DTPicker aussi JMA

    les bouttons utiliser (afficher) sur la quelle j'ai taper le code sql avec le calcule :

    Private Sub afficherav_Click()
    Dim sql As String

    If RClient.State <> adStateClosed Then RClient.Close
    sql = "SELECT * FROM Client WHERE d_C Between #" & CDate(DTPicker1.Value) & "# And #" & CDate(DTPicker2.Value) & "#"

    RClient.Source = sql
    RClient.Open
    Set DataGrid1.DataSource = RClient

    Dim i As Integer
    Dim Som As Long
    Som = 0
    For i = 1 To RClient.RecordCount
    Som = Som + RClient!total_TTC
    RClient.MoveNext
    Next i
    caclt.Text = Som
    End Sub

    et le boutton (acctualiser) voila son code :
    Private Sub actualiser_Click()
    Set RClient = New ADODB.Recordset
    RClient.CursorLocation = adUseClient
    RClient.Open "Client", cnn, adOpenDynamic, adLockOptimistic
    Set DataGrid1.DataSource = RClient
    End Sub

    et la form load voila le code :
    Private Sub Form_Load()
    'connection avec la base de donnée

    Set cnn = New ADODB.Connection
    cnn.Provider = "Microsoft.jet.oledb.4.0"
    cnn.ConnectionString = App.Path & "\gclients.mdb"
    cnn.Open

    'l'apelle du table Client

    Set RClient = New ADODB.Recordset
    RClient.Open "Client", cnn, adOpenDynamic, adLockOptimistic

    'l'affichage des Commandes sur la datagrids

    Set RClient = New ADODB.Recordset
    RClient.CursorLocation = adUseClient
    RClient.Open "Client", cnn, adOpenDynamic, adLockOptimistic
    Set DataGrid1.DataSource = RClient

    End Sub
    et 2 DTPicker (du / au)

    et le datagrids sur la quelle s'qfficher les informations de la table client au load ou la selection entre les 2 date
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Krysstof Messages postés 1659 Statut Membre 295
     
    & cdate(dtpicker.value) &

    le CDate est inutile :
    dtpicker.value = chaine de caractere
    cdate = converti la chaine en date
    la concatenation avec & = reconverti en chaine.

    peut-être que ya un probleme en enchainant ces 3 conversion. (tu dois pouvoir paramétrer le format de la valeur renvoyer par le Datepicker dans ses proprétés)
    0
  7. brown_knight
     
    comment ca tu peu me donnée un exemple svp ?
    0
    1. Krysstof Messages postés 1659 Statut Membre 295
       
      "SELECT * FROM Client WHERE d_C Between #" & DTPicker1.Value & "# And #" & DTPicker2.Value & "#"

      Cdate converti un chaine en date pour l'utiliser dans vba, la c un requete sql donc ce n'est que de la chaine de caractere, la conversion en date et donc inutile
      0
  8. brown_knight
     
    j'ai essayer mon ami mais c la mm chose avec le 1er code soit il me donne des informations vide sur le datgris ou il me donne des une selection pas correcte 100 %

    je sais pas ca fait 3 jours je essayer il ma fait fou vraiment buffff
    0
  9. Krysstof Messages postés 1659 Statut Membre 295
     
    est-ce normal que tu utilise toujour le meme recordset et le meme datagrid :
    un coup c'est filtré sur la date
    dans actualiser, c'est la totalité de la table
    dans onload c'est la totalité de la table

    ensuite, peux tu faire des test de date, genre du 1 au 31 de chaque mois, du 1 au 10 de chaque mois, et me dire, PRECISEMENT, les dates prise, et le résultat : vide, partiel avec les bonne date, ou date erronées (si ya des date en dehors de la plage, tu me donne les valeur qu'il te donne)

    et je continuerai demain, la je vais dormir
    0
  10. brown_knight
     
    oui quand je choiser la date entre 1 et 31 de la mm mois il me donner le resultat exacte.
    dans les autres cas il me donnée soit le datagris vide ou une selection pas PRECISE. par exemple il me choiser la date de 2 mois entre ces date selection
    par exemple je choiser du 12/03/2010 juska 12/05/2010 il me donnée le datagrids vide ou une selections non correcte

    ok je te souhiater bon nuit et beaux reves.

    c possible donnée moi ton adresse email et je vais essayer t'envoyer la foto de la form avec les codes que j'ai utiliser et comme ca on peuvons trouver la souletion tres vite ok.

    et vraiment merci bcp pour ton aide ce soir :)
    a+ mon ami
    0
    1. Krysstof Messages postés 1659 Statut Membre 295
       
      envoie tes capture d'écran ici : http://www.hostingpics.net/
      0
  11. brown_knight
     
    ok j'ai envoyer la photo qui concerne ce pb
    et voila son nom
    780501selection.jpg
    0
  12. brown_knight
     
    voila le lien direct
    http://img10.hostingpics.net/pics/780501selection.jpg

    et merci bcp pour votre aide :)
    0