Aut' gros pb :)

cs_laglobule Messages postés 29 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 1 août 2002 - 22 juil. 2002 à 11:31
cs_laglobule Messages postés 29 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 1 août 2002 - 22 juil. 2002 à 11:36
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, c'est ce que coute le contrat a la boit.
En gros : marge = prix - cout

Je cherche a faire des calculs de chiffre d affaire en fct d un mois d une annee (chaque contrat a une date)

Mais je sais pas ce qui merde, mais je n obtiens jamais le bon resultat.
Voici ma source :

Private Sub Commande120_Click()

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

Dim date_debut As Date
Dim date_fin As Date

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

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'existe pas de contrat enregistré pendant ce mois..."
Else

chiffre_affaire = 0

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

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

tuple.Close
Set tuple = Nothing
dbf.Close

End If
End Sub

1 réponse

cs_laglobule Messages postés 29 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 1 août 2002
22 juil. 2002 à 11:36
Je pense que la requete merde sur la date
Mais je sais po pkoi.... :(
0
Rejoignez-nous