Format date dans recordset
Résolu/Fermé
andylenny
Messages postés
13
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
8 décembre 2008
-
28 juin 2008 à 16:17
andylenny Messages postés 13 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 8 décembre 2008 - 1 juil. 2008 à 07:33
andylenny Messages postés 13 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 8 décembre 2008 - 1 juil. 2008 à 07:33
A voir également:
- Format date dans recordset
- Format epub - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
- Format apfs - Guide
- Hp format tool - Télécharger - Stockage
- Format odt - Guide
3 réponses
yg_be
Messages postés
23358
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
Ambassadeur
1 555
28 juin 2008 à 21:53
28 juin 2008 à 21:53
Tu peux clarifier, peut-etre avec un exemple ?
yg_be
Messages postés
23358
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
Ambassadeur
1 555
30 juin 2008 à 08:05
30 juin 2008 à 08:05
Moi j'essayerais avec une clause "WHERE" à la place de "HAVING", mais cela n'a rien à voir avec ton probleme.
Si tes texbox contiennent des dates, que DO_DATE est un champ de type "date/time", et que la partie "heure" ne doive pas intervenir dans ta selection, je suggére de les déclarer comme dates, et de les utiliser ainsi :
Dim critere1 As date
Dim critere2 As date
...HAVING (F_DOCLIGNE.DO_DATE) Between " +cstr(clng(int(critere1))) + " And " +cstr(clng(int(critere2)))
Si tes texbox contiennent des dates, que DO_DATE est un champ de type "date/time", et que la partie "heure" ne doive pas intervenir dans ta selection, je suggére de les déclarer comme dates, et de les utiliser ainsi :
Dim critere1 As date
Dim critere2 As date
...HAVING (F_DOCLIGNE.DO_DATE) Between " +cstr(clng(int(critere1))) + " And " +cstr(clng(int(critere2)))
andylenny
Messages postés
13
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
8 décembre 2008
1
30 juin 2008 à 10:00
30 juin 2008 à 10:00
merci pour ta proposotion,
j'ai collé ce que tu m'as proposé et maintenant j'ai l'erreur : 3146: ODBC--l'appel a échoué, il y a quelque chose à changer?
d'autre part, il vaut mieux garder le HAVING au lieu de le changer en WHERE sinon il y a l'erreur 3075: erreur de syntaxe (opérateur absent) dans l'expression "F_DEPOT.DE_INTITULE" etc,
à bientôt
j'ai collé ce que tu m'as proposé et maintenant j'ai l'erreur : 3146: ODBC--l'appel a échoué, il y a quelque chose à changer?
d'autre part, il vaut mieux garder le HAVING au lieu de le changer en WHERE sinon il y a l'erreur 3075: erreur de syntaxe (opérateur absent) dans l'expression "F_DEPOT.DE_INTITULE" etc,
à bientôt
yg_be
Messages postés
23358
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
1 555
>
andylenny
Messages postés
13
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
8 décembre 2008
30 juin 2008 à 10:07
30 juin 2008 à 10:07
Et si tu mets le "WHERE" avant le "GROUP BY" ?
CurrentDb.Execute "INSERT INTO Temp_MouvStock ( N°Pièce, [Date], RéférenceArticle, Désignation, CodeFamille, Quantité, Unité, PrixUnitaire, Montant, Dépôt )SELECT F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO] AS Montant, F_DEPOT.DE_INTITULE FROM F_DEPOT INNER JOIN (F_DOCENTETE INNER JOIN ((F_ARTICLE INNER JOIN F_ARTSTOCK ON F_ARTICLE.AR_REF = F_ARTSTOCK.AR_REF) INNER JOIN F_DOCLIGNE ON F_ARTICLE.AR_REF = F_DOCLIGNE.AR_REF) ON F_DOCENTETE.DO_PIECE = F_DOCLIGNE.DO_PIECE) ON F_DEPOT.DE_NO = F_ARTSTOCK.DE_NO
WHERE (F_DOCLIGNE.DO_DATE) Between #06/01/2008# And #06/05/2008#
GROUP BY F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO], F_DEPOT.DE_INTITULE "
CurrentDb.Execute "INSERT INTO Temp_MouvStock ( N°Pièce, [Date], RéférenceArticle, Désignation, CodeFamille, Quantité, Unité, PrixUnitaire, Montant, Dépôt )SELECT F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO] AS Montant, F_DEPOT.DE_INTITULE FROM F_DEPOT INNER JOIN (F_DOCENTETE INNER JOIN ((F_ARTICLE INNER JOIN F_ARTSTOCK ON F_ARTICLE.AR_REF = F_ARTSTOCK.AR_REF) INNER JOIN F_DOCLIGNE ON F_ARTICLE.AR_REF = F_DOCLIGNE.AR_REF) ON F_DOCENTETE.DO_PIECE = F_DOCLIGNE.DO_PIECE) ON F_DEPOT.DE_NO = F_ARTSTOCK.DE_NO
WHERE (F_DOCLIGNE.DO_DATE) Between #06/01/2008# And #06/05/2008#
GROUP BY F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO], F_DEPOT.DE_INTITULE "
andylenny
Messages postés
13
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
8 décembre 2008
1
>
yg_be
Messages postés
23358
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
1 juil. 2008 à 06:24
1 juil. 2008 à 06:24
en mettant le where avant le group by, j'ai maintenant "Erreur de compilation: Attendu:Fin d'instruction, et c'est le mot GROUP qui est surligné,
andylenny
Messages postés
13
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
8 décembre 2008
1
>
andylenny
Messages postés
13
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
8 décembre 2008
1 juil. 2008 à 07:33
1 juil. 2008 à 07:33
Salut à Tous,
un copain m'a donné la solution, et ce n'était qu'un problème de quillemets et de & et me. je vous donne la correction:
CurrentDb.Execute "INSERT INTO Temp_MouvementStock ( N°Pièce, [Date], RéférenceArticle, Désignation, CodeFamille, Quantité, Unité, PrixUnitaire, Montant, Dépôt )SELECT F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO] AS Montant, F_DEPOT.DE_INTITULE FROM F_DEPOT INNER JOIN (F_DOCENTETE INNER JOIN ((F_ARTICLE INNER JOIN F_ARTSTOCK ON F_ARTICLE.AR_REF = F_ARTSTOCK.AR_REF) INNER JOIN F_DOCLIGNE ON F_ARTICLE.AR_REF = F_DOCLIGNE.AR_REF) ON F_DOCENTETE.DO_PIECE = F_DOCLIGNE.DO_PIECE) ON F_DEPOT.DE_NO = F_ARTSTOCK.DE_NO GROUP BY F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO], F_DEPOT.DE_INTITULE having F_DOCLIGNE.DO_DATE " & " between " & FormatDate(Me.critere1) & " and " & FormatDate(Me.critere2)
où formatDate est une function:
Function FormatDate(d As Date)
FormatDate = "#" & Format(d, "mm/dd/yyyy") & "#"
End Function
a +
un copain m'a donné la solution, et ce n'était qu'un problème de quillemets et de & et me. je vous donne la correction:
CurrentDb.Execute "INSERT INTO Temp_MouvementStock ( N°Pièce, [Date], RéférenceArticle, Désignation, CodeFamille, Quantité, Unité, PrixUnitaire, Montant, Dépôt )SELECT F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO] AS Montant, F_DEPOT.DE_INTITULE FROM F_DEPOT INNER JOIN (F_DOCENTETE INNER JOIN ((F_ARTICLE INNER JOIN F_ARTSTOCK ON F_ARTICLE.AR_REF = F_ARTSTOCK.AR_REF) INNER JOIN F_DOCLIGNE ON F_ARTICLE.AR_REF = F_DOCLIGNE.AR_REF) ON F_DOCENTETE.DO_PIECE = F_DOCLIGNE.DO_PIECE) ON F_DEPOT.DE_NO = F_ARTSTOCK.DE_NO GROUP BY F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO], F_DEPOT.DE_INTITULE having F_DOCLIGNE.DO_DATE " & " between " & FormatDate(Me.critere1) & " and " & FormatDate(Me.critere2)
où formatDate est une function:
Function FormatDate(d As Date)
FormatDate = "#" & Format(d, "mm/dd/yyyy") & "#"
End Function
a +
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
30 juin 2008 à 08:40
30 juin 2008 à 08:40
Bonjour,
Je connais pas le language employé mais peut-être une piste...
Les dates dans une BD sont au format US ? et si: par ex :
date1 le 13/12/2008 (13 décembre) dans la base c'est 12/13/2008 d'où erreur (pas de mois 13)
peut-être avec un Format...
A+
Je connais pas le language employé mais peut-être une piste...
Les dates dans une BD sont au format US ? et si: par ex :
date1 le 13/12/2008 (13 décembre) dans la base c'est 12/13/2008 d'où erreur (pas de mois 13)
peut-être avec un Format...
A+
30 juin 2008 à 06:50
voilà un bout de mon code,
Nota: les champs des tables ont été extraites d'une autre base SAGE par ODBC
Private Sub MouvementStock_Click()
Dim rst As DAO.Recordset
Dim rst_mouvstock As DAO.Recordset
Dim critere1 As String
Dim critere2 As String
critere1 = Me.DateDébut ' date dans une zone de liste
critere2 = Me.DateFin ' date dans une zone de liste
CurrentDb.Execute "delete from temp_MouvStock" ' purger table du recordset
CurrentDb.Execute "INSERT INTO Temp_MouvStock ( N°Pièce, [Date], RéférenceArticle, Désignation, CodeFamille, Quantité, Unité, PrixUnitaire, Montant, Dépôt )SELECT F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO] AS Montant, F_DEPOT.DE_INTITULE FROM F_DEPOT INNER JOIN (F_DOCENTETE INNER JOIN ((F_ARTICLE INNER JOIN F_ARTSTOCK ON F_ARTICLE.AR_REF = F_ARTSTOCK.AR_REF) INNER JOIN F_DOCLIGNE ON F_ARTICLE.AR_REF = F_DOCLIGNE.AR_REF) ON F_DOCENTETE.DO_PIECE = F_DOCLIGNE.DO_PIECE) ON F_DEPOT.DE_NO = F_ARTSTOCK.DE_NO GROUP BY F_DOCLIGNE.DO_PIECE, F_DOCLIGNE.DO_DATE, F_ARTICLE.AR_REF, F_ARTICLE.AR_DESIGN, F_ARTICLE.FA_CODEFAMILLE, F_DOCLIGNE.DL_QTE, F_ARTICLE.INT_UNITEVEN, F_ARTICLE.AR_PRIXACH, [AR_PRIXACH]*[AS_QTESTO], F_DEPOT.DE_INTITULE HAVING (F_DOCLIGNE.DO_DATE) Between #06/01/2008# And #06/05/2008#"
end sub
et là çà marche, par contre lorsque je mets critere1 et critere2 à la place des dates, j'ai l'erreur '3075'= erreur de syntaxe dans la date dans l'expression HAVING (F_DOCLIGNE.DO_DATE) Between #critere1# And #critere2#", ce n'est peut-être qu'un problème de guillement et de parenthèse, j'ai déjà essayé plusieurs combinaison,