begin process at 2010 02 10 05:00:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

PB de date


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PB de date

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ée 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 Fonction RECHERCHE d'après date de début et de fin [ par Joseph67 ] Bonjour à tous, Dans un classeur en Feuil1! je saisi une date en A1, et je souhaite afficher en A2 la valeur correspondante de la colonne C d'un tab Recherche date et Matricule [ par amigna ] Bonjour Je veux faire la recherche de date et matricule la recherche mais par fois si je clique sur le Bouton devCommande par fois il me donne la rec Recherche d'une Date dans un Tableau - VBA [ par Argile92 ] Bonjour tout le monde,J'aimerai rechercher une DATE dans un Tableau de Date initialiser uniquement dans VBAJ'ai essayé avec LookUp ou Match, mais ça n recherche une commande permettant de suprimer samedi et dimanche dans liste date [ par hermann28 ] je suis un debutant pour les macros. on me demande de faire dans une colonne tous les jour ouvres à partir d'une date en entree! merci ! comparaison de date [ par djcbx ] Bonjour, je réalise un programme qui recherche dans un dossier si un fichier existe entre datedujour-1 à 20h jusqu'a datedujour à 5h. Mais je n'arri Recherche à partir d'un index et entre deux date [ par Mojoe ] Bonjour, J'ai besoin d'aide dans mon programme: Je voulez afficher la consommation d'un catégorie entre deux date sur mon projet de gestion de stock M encore le probleme de recherche entre deux dates [ par kand_med ] bonjour, mon probleme de recherche entre deux dates ca existe encorevoila ma requete:Date_Reservation, type_voiture as Type_Voiture, date_depart as Da


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales