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

Krysstof Messages postés 1659 Statut Membre 294
 
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
brown_knight
 
SI mon ami
le formt de la date sur mon base de donnée est : JMA
0
Krysstof Messages postés 1659 Statut Membre 294
 
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
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

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

Posez votre question
Krysstof Messages postés 1659 Statut Membre 294
 
& 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
brown_knight
 
comment ca tu peu me donnée un exemple svp ?
0
Krysstof Messages postés 1659 Statut Membre 294
 
"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
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
Krysstof Messages postés 1659 Statut Membre 294
 
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
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
Krysstof Messages postés 1659 Statut Membre 294
 
envoie tes capture d'écran ici : http://www.hostingpics.net/
0
brown_knight
 
ok j'ai envoyer la photo qui concerne ce pb
et voila son nom
780501selection.jpg
0
brown_knight
 
voila le lien direct
http://img10.hostingpics.net/pics/780501selection.jpg

et merci bcp pour votre aide :)
0