Gros proleme avec ADO, base access et le type donnée heure formate hh:mm:ss aide

rodrigue1979 Messages postés 15 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 7 septembre 2005 - 30 août 2004 à 10:07
cs_gi Messages postés 58 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 12 février 2005 - 30 août 2004 à 14:51
Bonjour j'ai un probleme avec une base access
et un type de donnée heure

j'ecris 09:00:00 et 10:00:00 et 11:00:00

quand je passe une requete pour trouver les enregistrement inferieur a 10:00:00 dans mon recordset se trouve 09:00:00 et 10:00:00

quand je passe une requete pour trouver le ou les enregitrement egal a 10:00:00 il n'y a rien dans mon recordset

alors que quand j'effectue les meme requete avec des heure differente tout fonctionne

le lien avec la base de donnée et du type ODBC
j'utilise un controle ADO

n'y a t'il pas un bug avec 10:00:00
aidez moi s'il vous plait c pour le travail merci

10 réponses

cs_gi Messages postés 58 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 12 février 2005
30 août 2004 à 10:59
peux tu preciser comment tu passes ta requete ? est le type de variables que tu utilise.
0
rodrigue1979 Messages postés 15 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 7 septembre 2005
30 août 2004 à 11:19
With Adoliv_avant

.RecordSource = "Select * from livraisons where date='" & date_journee & "' and demi_journee='" & demi_journee & "' and heure_livraison=#" & heure2 & "#"

.Refresh

End With

ou

With Adoliv_avant

.RecordSource = "Select * from livraisons where date='" & date_journee & "' and demi_journee='" & demi_journee & "' and heure_livraison<#" & heure2 & "# order by heure_livraison desc"

.Refresh

End With

le controle ado a le type de commande "Commandtext"

la variable date_journee est du type string ex : "12/07/2004"
la variable demi_journee est du type string ex : "Matin"
la variable heure2 est du type string ex : #10:00:00#

voila tout y est j'espere que tu poura m'aider merci c super cool
8-)
0
cs_gi Messages postés 58 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 12 février 2005
30 août 2004 à 11:38
dans ta bd de quel type sont tes champs

date_journee (date ou text ?)
heure_livraison ?
0
rodrigue1979 Messages postés 15 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 7 septembre 2005
30 août 2004 à 11:56
date_journee est du type text

et

heure _livraison est du type date/heure avec le format 00:00:00

merci de m'aider
0

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

Posez votre question
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
30 août 2004 à 13:27
Tu peux essayer la Fonction "TimeSerial"

It@li@
0
rodrigue1979 Messages postés 15 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 7 septembre 2005
30 août 2004 à 13:55
la fonction time serial me sert a rien dans ce contexte
elle permet juste de constituer une heure a partir des heure minute seconde

merci quand meme italia

le probleme que j'ai poster est plus complexe que ca je pense
0
cs_gi Messages postés 58 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 12 février 2005
30 août 2004 à 14:12
ecoute rodrigue je ne comprend pas d'ou vien ton pd
j'ai testé ta requete et elle marhe chez moi.
mais je n'utilise pas de controle ado.

voici mon petit bout de code pour acceder à la base, faire la requete et afficher le resultat dans un tableau.

Option Explicit

'dans une form place un msflexgrid
'ajoute la reference Microsoft ADO

Dim CnAdoTest As New ADODB.Connection ' connection à la base
Dim Rs As New ADODB.Recordset
Dim cmdADO As New ADODB.Command

Dim SqlString As String
Dim heure2 As String
Dim date_journee As String

Private Sub Form_Load()

CnAdoTest.Provider = "Microsoft.Jet.OLEDB.4.0"
CnAdoTest.ConnectionString = App.Path & "\test1.mdb" 'chemin de ta base
CnAdoTest.Open

date_journee = "10/05/2004"
heure2 = "10:00:00"

'ici ta requeteSqlString "select * from livraisons where date '" & date_journee & "' and heure_livraison <= #" & heure2 & "# order by heure_livraison desc"

Rs.CursorLocation = adUseClient
Rs.CursorType = adOpenDynamic
Rs.LockType = adLockOptimistic
cmdADO.ActiveConnection = CnAdoTest
cmdADO.CommandText = SqlString
Rs.Open cmdADO

If Rs.RecordCount > 0 Then
MSFlexGrid1.Rows = Rs.RecordCount
MSFlexGrid1.Cols = Rs.Fields.Count
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1
MSFlexGrid1.Clip = Rs.GetString(adClipString, Rs.RecordCount)
MSFlexGrid1.RowSel = 0
MSFlexGrid1.ColSel = 0
MSFlexGrid1.ColWidth(0) = 1000
MSFlexGrid1.ColWidth(1) = 1000
MSFlexGrid1.ColWidth(2) = 1000


Else
MSFlexGrid1.Clear
MSFlexGrid1.Rows = 0

End If
Rs.Close
Set Rs = Nothing
CnAdoTest.Close

End Sub
0
rodrigue1979 Messages postés 15 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 7 septembre 2005
30 août 2004 à 14:28
gi j'ai bien compris le code que t as essayer c cool mais
creer generateur sql avec datagrid est un objet ado et un objet rs
c ce que je fais au quotidien pour tester mes requete

de plus le probleme que j'ai poser se reproduit aussi bien sous vb que sous access je pense que cela vient de la base en elle meme

quand j'ecrit mon champ heure_livraison je fait cela :




regarde si tu voit une erreur sinon laisse j'essairrai de trouver une alternative

je veut savoir pourquoi car le logiciel que je developpe est destinnée a etre commercialiser

existe t'il des virus sur les base donnée ?

repond moi stp ?
0
rodrigue1979 Messages postés 15 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 7 septembre 2005
30 août 2004 à 14:30
desolé j'ai oublier de mettre le code

gi j'ai bien compris le code que t as essayer c cool mais
creer generateur sql avec datagrid est un objet ado et un objet rs
c ce que je fais au quotidien pour tester mes requete

de plus le probleme que j'ai poser se reproduit aussi bien sous vb que sous access je pense que cela vient de la base en elle meme

quand j'ecrit mon champ heure_livraison je fait cela :

/*********

With Adolivraison.Recordset
.AddNew
.Fields("ID_CLIENT_2") = Adoinfo_client1.Recordset.Fields("ID_CLIENT")
.Fields("DATE") = CStr(DTPicker1.Value)
.Fields("DEMI_JOURNEE") = Combo1.Text
.Fields("ID_OPERATION_1") = Adoinfo_operation.Recordset.Fields("ID_OPERATIONS")
.Fields("DUREE") = Adoinfo_operation.Recordset.Fields("DUREE")
.Fields("ID_LIVREUR_1") = Adoinfo_livreur.Recordset.Fields("ID_LIVREUR")
.Fields("ZONE") = Label22.Caption
.Fields("COUT_TOTAL") = Label41.Caption
.Fields("DUREE_SUP") = Format(DTPicker2.Value, "hh:mm:ss")
.Fields("DUREE_TOTAL") = Format(CDate(Format(DTPicker2.Value, "hh:mm:ss")) + CDate(Adoinfo_operation.Recordset.Fields("DUREE")), "hh:mm:ss")
.Fields("HEURE_LIVRAISON") = Format(DTPicker3.Value, "hh:mm:ss")
.Fields("DUREE_TRAJET") = duree_trajet_liv
.Update
End With

/********
regarde si tu voit une erreur sinon laisse j'essairrai de trouver une alternative

je veut savoir pourquoi car le logiciel que je developpe est destinnée a etre commercialiser

existe t'il des virus sur les base donnée ?

repond moi stp ?
0
cs_gi Messages postés 58 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 12 février 2005
30 août 2004 à 14:51
pour formater en heure:minute:seconde j'utilise le format suivant :
Format(DTPicker3.Value, "hh:nn:ss") au lieu de
Format(DTPicker3.Value, "hh:mm:ss")
"mm" pour formater des mois

ton pb vient il de la ?
0
Rejoignez-nous