Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2010, 16h29   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 52
Points : 10
Points : 10
Par défaut Date Max de deux champs

Bonsoir,
je cherche à calculer la date prévue pour la signature du Conseil de gestion, or cette date ne sera requise que si le montant dépasse USD 800K et cette date et fonction de la date de signature du Dir FIN et de celle du DG (la date Max des deux). si l'une de ces deux dates n'est pas saisie, le champ calculé Target Date CG restera vide.
en effet, j'ai préparé une fonction, mais je n'arrive pas à la finaliser:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function TargDateCG(Amount As Long, Approval_Date_FIN As Date, Approval_Date_DG  As Date)
 
    Select Case Amount
        Case Is >= 800000
            Select Case Approval_Date_FIN 
                Case Is <> 0
                    Select Case Approval_Date_DG 
                        Case Is <> 0
 
                                DateSigCG = DMax(Approval_Date_FIN, 
Approval_Date_DG) + 30
 
 
                    End Select
            End Select
    End Select
 
TargDateCG = DateSigCG
 
End Function
Merci d'avance pour votre aide
Mounamidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 16h40   #2
Membre du Club
 
clément
Étudiant
Inscription : septembre 2010
Messages : 131
Détails du profil
Informations personnelles :
Nom : clément
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 131
Points : 59
Points : 59
Tu as un bug ou quelque chose ? Car j'ai pas compris ce que tu voulais ^^

Mais sinon pour tes SELECT t'aurai d'autre "posibilité" car un SELECT avec un seul CASE c'est bourrain, fait plutot des IF et comme ca tu peux supprimer des lignes genre
Code :
1
2
3
4
5
6
 
If (Amount >= 800000) Then
  If(Approval_Date_Fin <> 0 AND Approval_Date_DG <> 0) Then
    DateSigCG = DMax(Approval_Date_FIN, Approval_Date_DG) + 30
  End if
End If
Mycose est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 17h10   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 52
Points : 10
Points : 10
Citation:
Envoyé par Mycose Voir le message
Tu as un bug ou quelque chose ?
effectivement, j'ai un bug et l'erreur d'exécution '3078' a été signalé.
Mounamidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 09h14   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 52
Points : 10
Points : 10
Bon, cette fois j'ai utilisé la fonction if, sauf que si j'ai l'une des deux dates ou les deux nulles, le resultat est: #Erreur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function TargDateCG(Amount As Long, Approval_Date_FIN As Date, Approval_Date_DG As Date)
 
 
 
        If (Approval_Date_FIN = Null Or Approval_Date_DG = Null) Then Exit Function
 
            If (Amount >= 800000) Then
               If (Approval_Date_FIN > Approval_Date_DG) Then
                DateSigCG = Approval_Date_FIN + 21
 
               Else
               DateSigCG = Approval_Date_DG + 21
 
               End If
 
            End If
 
TargDateCG = DateSigCG
 
End Function
je souhaite que si les deux dates ou l'une des deux est Nulle ce champ calculé (utilisant la fonction: TargDateCG) restera vide (Null).
Mounamidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 09h44   #5
Membre Expert
 
Avatar de Renardo
 
Renald Chauvet
Inscription : avril 2006
Messages : 1 581
Détails du profil
Informations personnelles :
Nom : Renald Chauvet
Âge : 48

Informations forums :
Inscription : avril 2006
Messages : 1 581
Points : 1 750
Points : 1 750
Bonjour
Essai comme cela
Code :
If isnull(Approval_Date_FIN)  Or isnull (Approval_Date_DG) Then Exit Function
Renardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 10h05   #6
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 52
Points : 10
Points : 10
Citation:
Envoyé par Renardo Voir le message
Bonjour
Essai comme cela
Code :
If isnull(Approval_Date_FIN)  Or isnull (Approval_Date_DG) Then Exit Function
je l'ai déjà essayé mais c'est toujours le même problème!
Mounamidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2010, 11h38   #7
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 52
Points : 10
Points : 10
Par défaut Variables Null implique #erreur

Citation:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function TargDateCG(Amount As Long, Approval_Date_FIN As Date, Approval_Date_DG As Date)
 
 
 
        If (Approval_Date_FIN = Null Or Approval_Date_DG = Null) Then Exit Function
 
            If (Amount >= 800000) Then
               If (Approval_Date_FIN > Approval_Date_DG) Then
                DateSigCG = Approval_Date_FIN + 21
 
               Else
               DateSigCG = Approval_Date_DG + 21
 
               End If
 
            End If
 
TargDateCG = DateSigCG
 
End Function
c'est bon je crois avoir trouvé la solution, j'ai remplacé tous les types de variables par Variant est l'erreur à disparue
Code :
Function TargDateCG(Amount As Variant, Approval_Date_FIN As Variant, Approval_Date_DG As Variant)
est-ce qu'il y a quelqu'un qui peut donner plus d'informations pour plus de compréhension?
Mounamidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h07   #8
Membre du Club
 
clément
Étudiant
Inscription : septembre 2010
Messages : 131
Détails du profil
Informations personnelles :
Nom : clément
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2010
Messages : 131
Points : 59
Points : 59
tu dois avoir un problème dans tes types, je viens de voir que tu n'as pas marqué que t'a fonction retournait quelque chose
De quel type est DateSigCG ?

Car le problème vient peut être de là tente :

Code :
Function TargDateCG(Amount As Long, Approval_Date_FIN As Date, Approval_Date_DG As Date) As TYPEDEDATESIGCG
Et bien sur tu remplaces TYPEDATESIGCG par le type de ta variable
Mycose est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h23.


 
 
 
 
Partenaires

Hébergement Web