Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : PB de date [ Archives Visual Basic / VBA ] (laglobule)

mardi 23 juillet 2002 à 12:09:00 | PB de date

laglobule

Jour'

Bon voila ca fait + d une semaine que je bloque sur ce pb et tjs po de reponse :(

J ai une BD qui gere des contrats
Pour chaque contrat, j'ai plusieurs pieces ou prestations
Chaque pieces ou prestations a un prix et un cout pour la société

Or je voudrais connaitre la marge (cad prix-cout) des contrats compris entre 2 dates

Genre quel est le chiffre d affaire entre le 05/04/2002 et le 16/11/2002

Seulement, quelles que soient ces 2 dates, le prog me sort le chiffre d affaire compris entre le 01/01/2002 et ma date_fin, why ?

voici ma source :

Private Sub Image123_Click()
Dim annee_recherche As String
Dim mois_recherche As String
Dim mois As String

Dim dbf As Database
Dim tuple As Recordset
Dim requete As String

Dim date_debut As String
Dim date_fin As String

Dim chiffre_affaire As Long
Dim marge As Long
Dim i As Integer

Dim code_contrat As String

If (IsNull(Forms![Résultat - calcul du CA pour un mois donné]![Modifiable118].Value) Or (IsNull(Forms![Résultat - calcul du CA pour un mois donné]![Modifiable116].Value))) Then
MsgBox "Un champ n'a pas été rempli... :("
Else
annee_recherche = Forms![Résultat - calcul du CA pour un mois donné]![Modifiable118].Value
mois_recherche = Forms![Résultat - calcul du CA pour un mois donné]![Modifiable116].Value
mois = mois_recherche

Select Case mois_recherche
Case "Janvier"
date_debut = CDate("01/01/" & annee_recherche)
date_fin = CDate("31/01/" & annee_recherche)
Case "Février"
date_debut = CDate("01/02/" & annee_recherche)
date_fin = CDate("28/02/" & annee_recherche)
Case "Mars"
date_debut = CDate("01/03/" & annee_recherche)
date_fin = CDate("31/03/" & annee_recherche)
Case "Avril"
date_debut = CDate("01/04/" & annee_recherche)
date_fin = CDate("30/04/" & annee_recherche)
Case "Mai"
date_debut = CDate("01/05/" & annee_recherche)
date_fin = CDate("31/05/" & annee_recherche)
Case "Juin"
date_debut = CDate("01/06/" & annee_recherche)
date_fin = CDate("30/06/" & annee_recherche)
Case "Juillet"
date_debut = CDate("01/07/" & annee_recherche)
date_fin = CDate("31/07/" & annee_recherche)
Case "Août"
date_debut = CDate("01/08/" & annee_recherche)
date_fin = CDate("31/08/" & annee_recherche)
Case "Septembre"
date_debut = CDate("01/09/" & annee_recherche)
date_fin = CDate("30/09/" & annee_recherche)
Case "Octobre"
date_debut = CDate("01/10/" & annee_recherche)
date_fin = CDate("31/10/" & annee_recherche)
Case "Novembre"
date_debut = CDate("01/11/" & annee_recherche)
date_fin = CDate("30/11/" & annee_recherche)
Case "Décembre"
date_debut = CDate("01/12/" & annee_recherche)
date_fin = CDate("31/12/" & annee_recherche)
Case Else
MsgBox "Le mois que vous venez d'insérer est incorrect..."
End Select


Set dbf = CurrentDb

requete = "SELECT Prix, Cout "
requete = requete & "FROM Contrat, Piece_prestation_formation "
requete = requete & "WHERE Contrat.Id=Piece_prestation_formation.Id_contrat "
requete = requete & "AND (Contrat.Date_contrat >= #" & date_debut & "#) "
requete = requete & "AND (Contrat.Date_contrat <= #" & date_fin & "#); "

Set tuple = dbf.OpenRecordset(requete)

If tuple.RecordCount = 0 Then
MsgBox "Il n'y a aucun contrat d'enregistré pour cette période..."
Else
With tuple
.MoveLast
.MoveFirst
End With

For i = 1 To tuple.RecordCount
marge = tuple("Prix").Value - tuple("Cout").Value
chiffre_affaire = chiffre_affaire + marge
tuple.MoveNext
Next i

tuple.Close
Set tuple = Nothing
dbf.Close
MsgBox "Chiffre d'affaire sur la période comprise entre le " & CStr(date_debut) & " et le " & CStr(date_fin) & " : " & vbCrLf & vbCrLf & vbTab & CStr(chiffre_affaire) & " ¤"
End If

End If
End Sub




mici pour la reponse

mardi 23 juillet 2002 à 12:24:51 | Re : PB de date

skrol29

Heuuu bon hum, ton code gère les dates d'une façon super zarbi. Mais pourtant ça devrait marcher.

Peux-tu faire un débuging pas à pas et nous donner la valeur de la variable 'requete' juste avant l'ouverture du RecordSet ?

--------------------
Skrol 29
www.skrol29.com
--------------------


-------------------------------
Réponse au message :
-------------------------------

Jour'

Bon voila ca fait + d une semaine que je bloque sur ce pb et tjs po de reponse :(

J ai une BD qui gere des contrats
Pour chaque contrat, j'ai plusieurs pieces ou prestations
Chaque pieces ou prestations a un prix et un cout pour la société

Or je voudrais connaitre la marge (cad prix-cout) des contrats compris entre 2 dates

Genre quel est le chiffre d affaire entre le 05/04/2002 et le 16/11/2002

Seulement, quelles que soient ces 2 dates, le prog me sort le chiffre d affaire compris entre le 01/01/2002 et ma date_fin, why ?

voici ma source :

Private Sub Image123_Click()
Dim annee_recherche As String
Dim mois_recherche As String
Dim mois As String

Dim dbf As Database
Dim tuple As Recordset
Dim requete As String

Dim date_debut As String
Dim date_fin As String

Dim chiffre_affaire As Long
Dim marge As Long
Dim i As Integer

Dim code_contrat As String

If (IsNull(Forms![Résultat - calcul du CA pour un mois donné]![Modifiable118].Value) Or (IsNull(Forms![Résultat - calcul du CA pour un mois donné]![Modifiable116].Value))) Then
MsgBox "Un champ n'a pas été rempli... :("
Else
annee_recherche = Forms![Résultat - calcul du CA pour un mois donné]![Modifiable118].Value
mois_recherche = Forms![Résultat - calcul du CA pour un mois donné]![Modifiable116].Value
mois = mois_recherche

Select Case mois_recherche
Case "Janvier"
date_debut = CDate("01/01/" & annee_recherche)
date_fin = CDate("31/01/" & annee_recherche)
Case "Février"
date_debut = CDate("01/02/" & annee_recherche)
date_fin = CDate("28/02/" & annee_recherche)
Case "Mars"
date_debut = CDate("01/03/" & annee_recherche)
date_fin = CDate("31/03/" & annee_recherche)
Case "Avril"
date_debut = CDate("01/04/" & annee_recherche)
date_fin = CDate("30/04/" & annee_recherche)
Case "Mai"
date_debut = CDate("01/05/" & annee_recherche)
date_fin = CDate("31/05/" & annee_recherche)
Case "Juin"
date_debut = CDate("01/06/" & annee_recherche)
date_fin = CDate("30/06/" & annee_recherche)
Case "Juillet"
date_debut = CDate("01/07/" & annee_recherche)
date_fin = CDate("31/07/" & annee_recherche)
Case "Août"
date_debut = CDate("01/08/" & annee_recherche)
date_fin = CDate("31/08/" & annee_recherche)
Case "Septembre"
date_debut = CDate("01/09/" & annee_recherche)
date_fin = CDate("30/09/" & annee_recherche)
Case "Octobre"
date_debut = CDate("01/10/" & annee_recherche)
date_fin = CDate("31/10/" & annee_recherche)
Case "Novembre"
date_debut = CDate("01/11/" & annee_recherche)
date_fin = CDate("30/11/" & annee_recherche)
Case "Décembre"
date_debut = CDate("01/12/" & annee_recherche)
date_fin = CDate("31/12/" & annee_recherche)
Case Else
MsgBox "Le mois que vous venez d'insérer est incorrect..."
End Select


Set dbf = CurrentDb

requete = "SELECT Prix, Cout "
requete = requete & "FROM Contrat, Piece_prestation_formation "
requete = requete & "WHERE Contrat.Id=Piece_prestation_formation.Id_contrat "
requete = requete & "AND (Contrat.Date_contrat >= #" & date_debut & "#) "
requete = requete & "AND (Contrat.Date_contrat <= #" & date_fin & "#); "

Set tuple = dbf.OpenRecordset(requete)

If tuple.RecordCount = 0 Then
MsgBox "Il n'y a aucun contrat d'enregistré pour cette période..."
Else
With tuple
.MoveLast
.MoveFirst
End With

For i = 1 To tuple.RecordCount
marge = tuple("Prix").Value - tuple("Cout").Value
chiffre_affaire = chiffre_affaire + marge
tuple.MoveNext
Next i

tuple.Close
Set tuple = Nothing
dbf.Close
MsgBox "Chiffre d'affaire sur la période comprise entre le " & CStr(date_debut) & " et le " & CStr(date_fin) & " : " & vbCrLf & vbCrLf & vbTab & CStr(chiffre_affaire) & " ¤"
End If

End If
End Sub




mici pour la reponse

mardi 23 juillet 2002 à 12:34:54 | Re : PB de date

laglobule

A vrai dire, je bosse sous access (logiciel que j ai ouvert la premiere fois de ma vie il y a 2 semaines), je ne connais po trop le VB et je ne sais absolument pas faire ce que tu me demandes....

mardi 23 juillet 2002 à 12:41:36 | Re : PB de date

laglobule

Ce que je ne comprends pas non plus, c que si je ne met le bout de code suivant :

with tuple
.movelast
.movefirst
end with

Ben j obtiens un resultat different
(qui n a pas la bonne valeur non plus)

mardi 8 juillet 2003 à 10:54:27 | Re : PB de date

nitrique

met tes variables de date au format date, ça devrait etre mieux, puis, utilise la commande format(ma_date,"yy") pour comparer des date voici un bout de code qui devrait t'aider un peu (c'est un chronometre qui utilise la date systeme car le timer est trop imprécis en fait):

Dim debut, coucou, fin As Date
-------------------------------------------------------
Private Sub Command1_Click()
coucou = Format(Now(), "d/m/yy h:n:s")
Timer1 = True
End Sub
-------------------------------------------------------
Private Sub Timer1_Timer()
debut = Format(Now(), "d/m/yy h:n:s")
fin = CDate(debut) - CDate(coucou)
Label1.Caption = debut
Text1.Text = Format(CDate(fin), "h")
Text2.Text = Format(fin, "n")
Text3.Text = Format(fin, "s")
End Sub


ps : en espèrant avoir été clair, je te souhaite plein de petites date à gerer
nb : soit plus précis dans tes sujets

David de lAVAL


-------------------------------
Réponse au message :
-------------------------------

> Heuuu bon hum, ton code gère les dates d'une façon super zarbi. Mais pourtant ça devrait marcher.
>
> Peux-tu faire un débuging pas à pas et nous donner la valeur de la variable 'requete' juste avant l'ouverture du RecordSet ?
>
> --------------------
> Skrol 29
> www.skrol29.com
> --------------------
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> Jour'
>
> Bon voila ca fait + d une semaine que je bloque sur ce pb et tjs po de reponse :(
>
> J ai une BD qui gere des contrats
> Pour chaque contrat, j'ai plusieurs pieces ou prestations
> Chaque pieces ou prestations a un prix et un cout pour la société
>
> Or je voudrais connaitre la marge (cad prix-cout) des contrats compris entre 2 dates
>
> Genre quel est le chiffre d affaire entre le 05/04/2002 et le 16/11/2002
>
> Seulement, quelles que soient ces 2 dates, le prog me sort le chiffre d affaire compris entre le 01/01/2002 et ma date_fin, why ?
>
> voici ma source :
>
> Private Sub Image123_Click()
> Dim annee_recherche As String
> Dim mois_recherche As String
> Dim mois As String
>
> Dim dbf As Database
> Dim tuple As Recordset
> Dim requete As String
>
> Dim date_debut As String
> Dim date_fin As String
>
> Dim chiffre_affaire As Long
> Dim marge As Long
> Dim i As Integer
>
> Dim code_contrat As String
>
> If (IsNull(Forms![Résultat - calcul du CA pour un mois donné]![Modifiable118].Value) Or (IsNull(Forms![Résultat - calcul du CA pour un mois donné]![Modifiable116].Value))) Then
> MsgBox "Un champ n'a pas été rempli... :("
> Else
> annee_recherche = Forms![Résultat - calcul du CA pour un mois donné]![Modifiable118].Value
> mois_recherche = Forms![Résultat - calcul du CA pour un mois donné]![Modifiable116].Value
> mois = mois_recherche
>
> Select Case mois_recherche
> Case "Janvier"
> date_debut = CDate("01/01/" & annee_recherche)
> date_fin = CDate("31/01/" & annee_recherche)
> Case "Février"
> date_debut = CDate("01/02/" & annee_recherche)
> date_fin = CDate("28/02/" & annee_recherche)
> Case "Mars"
> date_debut = CDate("01/03/" & annee_recherche)
> date_fin = CDate("31/03/" & annee_recherche)
> Case "Avril"
> date_debut = CDate("01/04/" & annee_recherche)
> date_fin = CDate("30/04/" & annee_recherche)
> Case "Mai"
> date_debut = CDate("01/05/" & annee_recherche)
> date_fin = CDate("31/05/" & annee_recherche)
> Case "Juin"
> date_debut = CDate("01/06/" & annee_recherche)
> date_fin = CDate("30/06/" & annee_recherche)
> Case "Juillet"
> date_debut = CDate("01/07/" & annee_recherche)
> date_fin = CDate("31/07/" & annee_recherche)
> Case "Août"
> date_debut = CDate("01/08/" & annee_recherche)
> date_fin = CDate("31/08/" & annee_recherche)
> Case "Septembre"
> date_debut = CDate("01/09/" & annee_recherche)
> date_fin = CDate("30/09/" & annee_recherche)
> Case "Octobre"
> date_debut = CDate("01/10/" & annee_recherche)
> date_fin = CDate("31/10/" & annee_recherche)
> Case "Novembre"
> date_debut = CDate("01/11/" & annee_recherche)
> date_fin = CDate("30/11/" & annee_recherche)
> Case "Décembre"
> date_debut = CDate("01/12/" & annee_recherche)
> date_fin = CDate("31/12/" & annee_recherche)
> Case Else
> MsgBox "Le mois que vous venez d'insérer est incorrect..."
> End Select
>
>
> Set dbf = CurrentDb
>
> requete = "SELECT Prix, Cout "
> requete = requete & "FROM Contrat, Piece_prestation_formation "
> requete = requete & "WHERE Contrat.Id=Piece_prestation_formation.Id_contrat "
> requete = requete & "AND (Contrat.Date_contrat >= #" & date_debut & "#) "
> requete = requete & "AND (Contrat.Date_contrat <= #" & date_fin & "#); "
>
> Set tuple = dbf.OpenRecordset(requete)
>
> If tuple.RecordCount = 0 Then
> MsgBox "Il n'y a aucun contrat d'enregistré pour cette période..."
> Else
> With tuple
> .MoveLast
> .MoveFirst
> End With
>
> For i = 1 To tuple.RecordCount
> marge = tuple("Prix").Value - tuple("Cout").Value
> chiffre_affaire = chiffre_affaire + marge
> tuple.MoveNext
> Next i
>
> tuple.Close
> Set tuple = Nothing
> dbf.Close
> MsgBox "Chiffre d'affaire sur la période comprise entre le " & CStr(date_debut) & " et le " & CStr(date_fin) & " : " & vbCrLf & vbCrLf & vbTab & CStr(chiffre_affaire) & " ?"
> End If
>
> End If
> End Sub
>
>
>
>
> mici pour la reponse
>

mercredi 30 juin 2004 à 18:59:27 | Re : PB de date

GhostPiwiik

Definit tes variables en Date et pas en String....


Exemple:
Dim Date_Deb As Date
et non
Dim Date_Deb As String

Avec ca devrait mieux fonctionner.

[Hk]GhostPiwiik



Cette discussion est classé dans : fin, date, recherche, annee, cdate


Répondre à ce message

Sujets en rapport avec ce message

Aut' gros pb :) [ par laglobule ] Alors voila, dans ma BD, en gros je gere des contrats.Pour chaque contrat, on a un priw et un cout : le prix est celui facture au client, et le cout, Pb de dates avec VB et Access [ par laglobule ] Alors voila, g un formulaire avec 2 controles :- un me donnant un mois- l autre me donnant une anneeAvec ca, je dois calculer le chiffre d affaire de determiner la date la plus proche de la fin de l'annee [ par tonton33650 ] Bonjour a tous,J'ai un petit (ou plutot gros) souci avec la manipulation des dates avec VBA.Dans une feuille, j'ai dans une colonne une serie de dates Recordset & SQL [ par antonio75 ] Bonjour à tous,j'ai un probleme sur une requete SQL dans un recordset. Je veux sélectionner les enregistrements d'une BdD en fonction de la date, voic PB de date [ par antonio75 ] Bonjour a tous, voila, j'ai un pb au niveau d'une date et la je dois avouer que j'y comprends rien. Je veux afficher la date du 1er jour du mois en c Recherche directe dans un dataset [ par TrafMaxime ] Salut les pros de la prog,Dans une option 'statistique' de mon programme, je parcours les ventes dans une portion de date, pour un type d'appareil et manipulation de fichier - recherche d'une chaine [ par nanou29 ] Bonjour à tousje suis assez maniaque avec mes photos et la façon de les nommer, de les ranger.J'aime bien qu'elle porte les dates et heures de la pris Après avoir entré le numéro du mois recherché, trouver la date de fin du mois (28, 29, 30 ou 31) [ par vicelow5901 ] Bonjours à tous, Je voulais savoir si il y avait une fonction qui permettrai de trouver la date de fin de mois après avoir taper le mois recherché ain vba excel, recherche d'une cellule avec date [ par tahiti1 ] Bonjour,Je voudrais créer une macro excel pour effectuer la manip suivante:-Saisir une date dans une input box-Rechercher la cellule contenant cette d requete [ par amine390 ] salutbonsoir j'ai  un probleme  voila la requete est :sql = "select * from alocation_c where n_client=" & Combo1.Text & " And retour='non' And date_e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.