Trouver la date la plus récente

Le
Fguy
?Bonjour à tous,

J'ai tenté de faire ceci:

SQLCreon = "SELECT tblAchat.Articles, tblAchat.PrixAchat,tblAchat.DateAchat
FROM tblAchat WHERE tblAchat.Articles= ""Creon Caps 100X150 Mg""" _
And tblAchat.DateAchat = DMax("tblAchat.DateAchat")
Set rstAchat = maBD.OpenRecordset(SQLCreon)
rstAchat.MoveLast
If rstAchat.RecordCount > 0 Then
Me![CreonPrix] = rstAchat!prixachat
Else
Me![CreonPrix] = 0
End If

Mais, je reçois le message: erreur de compilation
argument non facultatif.

Que puis-je faire?

D'avance merci,

Guy FALESSE
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #23092291
Fguy a écrit, le 06/02/2011 13:46 :
?Bonjour à tous,

J'ai tenté de faire ceci:

SQLCreon = "SELECT tblAchat.Articles,
tblAchat.PrixAchat,tblAchat.DateAchat FROM tblAchat WHERE
tblAchat.Articles= ""Creon Caps 100X150 Mg""" _
And tblAchat.DateAchat = DMax("tblAchat.DateAchat")
Set rstAchat = maBD.OpenRecordset(SQLCreon)
rstAchat.MoveLast
If rstAchat.RecordCount > 0 Then
Me![CreonPrix] = rstAchat!prixachat
Else
Me![CreonPrix] = 0
End If

Mais, je reçois le message: erreur de compilation
argument non facultatif.

Que puis-je faire?

D'avance merci,

Guy FALESSE



Bonjour,

Afficher la valeur de SQLCreon pour vérifier, car c'est là que ça c oince.

A l'ouverture du guillemet, si je ne m'abuse il en faut trois et non
deux, ou on peut préférer une voie moins aventureuse :

strCreon = strCreon + "tblAchat.Articles= "
strCreon = strCreon + Chr$(34) + "Creon Caps 100X150 Mg" + Chr$(34)

ça, c'est pour déboguer la solution testée.

Pour connaître le prix correspondant à la date la plus récente, je
verrais bien quelque chose du style

DLookup("CreonPrix", "qryCreon", _
"tblAchat.DateAchat=Max(tblAchat.DateAchat)")

en ayant pris soin de créer une requête enregistrée qryCreon, avec comme
code le contenu de SQLCreon.

Il se peut qu'il soit intéressant de la rendre paramétrable pour
effectuer le même travail pour d'autres articles.
Fguy
Le #23092321
?Salut Gloops,

Merci pour ta réponse :-)
Je n'ai pas encore compris tout.
Pour le moment, je dois encore m'absenter, mais dès mon retour, je m'y
remets.
@+

Guy FALESSE

"Gloops" a écrit dans le message de groupe de discussion :
iimatt$ppq$

Fguy a écrit, le 06/02/2011 13:46 :
?Bonjour à tous,

J'ai tenté de faire ceci:

SQLCreon = "SELECT tblAchat.Articles,
tblAchat.PrixAchat,tblAchat.DateAchat FROM tblAchat WHERE
tblAchat.Articles= ""Creon Caps 100X150 Mg""" _
And tblAchat.DateAchat = DMax("tblAchat.DateAchat")
Set rstAchat = maBD.OpenRecordset(SQLCreon)
rstAchat.MoveLast
If rstAchat.RecordCount > 0 Then
Me![CreonPrix] = rstAchat!prixachat
Else
Me![CreonPrix] = 0
End If

Mais, je reçois le message: erreur de compilation
argument non facultatif.

Que puis-je faire?

D'avance merci,

Guy FALESSE



Bonjour,

Afficher la valeur de SQLCreon pour vérifier, car c'est là que ça coince.

A l'ouverture du guillemet, si je ne m'abuse il en faut trois et non
deux, ou on peut préférer une voie moins aventureuse :

strCreon = strCreon + "tblAchat.Articles= "
strCreon = strCreon + Chr$(34) + "Creon Caps 100X150 Mg" + Chr$(34)

ça, c'est pour déboguer la solution testée.

Pour connaître le prix correspondant à la date la plus récente, je
verrais bien quelque chose du style

DLookup("CreonPrix", "qryCreon", _
"tblAchat.DateAchat=Max(tblAchat.DateAchat)")

en ayant pris soin de créer une requête enregistrée qryCreon, avec comme
code le contenu de SQLCreon.

Il se peut qu'il soit intéressant de la rendre paramétrable pour
effectuer le même travail pour d'autres articles.
Fguy
Le #23092561
?Salut Gloops,

J'ai tenté ceci, mais ça ne va pas.
Je suis plutôt genre débutant.

Private Sub Query_Click()
Dim LePrix
LePrix = DLookup("CreonPrix", "qryCreon", _
"tblAchat.DateAchat=Max(tblAchat.DateAchat)")
MsgBox " " & LePrix
End Sub

J'ai comme erreur:
Impossible d'avoir une fonction d'agrégat dans la clause where
(tblAchat.dateAchat=max((tblAchat,dateAchat))

Voilà, voilà.
Donc, mon but est d'afficher le prix d'un médicament avec la date la plus
récente.
@+
Guy FALESSE

"Gloops" a écrit dans le message de groupe de discussion :
iimatt$ppq$

Fguy a écrit, le 06/02/2011 13:46 :
?Bonjour à tous,

J'ai tenté de faire ceci:

SQLCreon = "SELECT tblAchat.Articles,
tblAchat.PrixAchat,tblAchat.DateAchat FROM tblAchat WHERE
tblAchat.Articles= ""Creon Caps 100X150 Mg""" _
And tblAchat.DateAchat = DMax("tblAchat.DateAchat")
Set rstAchat = maBD.OpenRecordset(SQLCreon)
rstAchat.MoveLast
If rstAchat.RecordCount > 0 Then
Me![CreonPrix] = rstAchat!prixachat
Else
Me![CreonPrix] = 0
End If

Mais, je reçois le message: erreur de compilation
argument non facultatif.

Que puis-je faire?

D'avance merci,

Guy FALESSE



Bonjour,

Afficher la valeur de SQLCreon pour vérifier, car c'est là que ça coince.

A l'ouverture du guillemet, si je ne m'abuse il en faut trois et non
deux, ou on peut préférer une voie moins aventureuse :

strCreon = strCreon + "tblAchat.Articles= "
strCreon = strCreon + Chr$(34) + "Creon Caps 100X150 Mg" + Chr$(34)

ça, c'est pour déboguer la solution testée.

Pour connaître le prix correspondant à la date la plus récente, je
verrais bien quelque chose du style

DLookup("CreonPrix", "qryCreon", _
"tblAchat.DateAchat=Max(tblAchat.DateAchat)")

en ayant pris soin de créer une requête enregistrée qryCreon, avec comme
code le contenu de SQLCreon.

Il se peut qu'il soit intéressant de la rendre paramétrable pour
effectuer le même travail pour d'autres articles.
Gloops
Le #23092571
Ah oui là c'est moi qui mérite un bonnet d'âne !

Bon alors on est obligé de le faire en deux fois.
txtDate = DMax("tblAchat.DateAchat", "qryCreon", "")
txtPrix = DLookup("prix", "qryCreon", txtDate)

La première formule pourrait se trouver dans un contrôle texte
invisible, bien vérifier pendant les tests qu'il se calcul en premier.

Sinon on est obligé de mettre quelque part une procédure avec
txtDate.Requery
txtPrix.Requery
___________________________________
Fguy a écrit, le 06/02/2011 17:04 :
?Salut Gloops,

J'ai tenté ceci, mais ça ne va pas.
Je suis plutôt genre débutant.

Private Sub Query_Click()
Dim LePrix
LePrix = DLookup("CreonPrix", "qryCreon", _
"tblAchat.DateAchat=Max(tblAchat.DateAchat)")
MsgBox " " & LePrix
End Sub

J'ai comme erreur:
Impossible d'avoir une fonction d'agrégat dans la clause where
(tblAchat.dateAchat=max((tblAchat,dateAchat))

Voilà, voilà.
Donc, mon but est d'afficher le prix d'un médicament avec la date la
plus récente.
@+
Guy FALESSE

"Gloops" a écrit dans le message de groupe de discussion :
iimatt$ppq$

Fguy a écrit, le 06/02/2011 13:46 :
?Bonjour à tous,

J'ai tenté de faire ceci:

SQLCreon = "SELECT tblAchat.Articles,
tblAchat.PrixAchat,tblAchat.DateAchat FROM tblAchat WHERE
tblAchat.Articles= ""Creon Caps 100X150 Mg""" _
And tblAchat.DateAchat = DMax("tblAchat.DateAchat")
Set rstAchat = maBD.OpenRecordset(SQLCreon)
rstAchat.MoveLast
If rstAchat.RecordCount > 0 Then
Me![CreonPrix] = rstAchat!prixachat
Else
Me![CreonPrix] = 0
End If

Mais, je reçois le message: erreur de compilation
argument non facultatif.

Que puis-je faire?

D'avance merci,

Guy FALESSE
Fguy
Le #23093221
?salut Gloops,

Merci pour ta réponse. :-)
Mais, ce sera pour demain, le test.
En attendant, bonne soirée. :-)
@+
Guy FALESSE

"Gloops" a écrit dans le message de groupe de discussion :
iimhqc$f16$


Ah oui là c'est moi qui mérite un bonnet d'âne !

Bon alors on est obligé de le faire en deux fois.
txtDate = DMax("tblAchat.DateAchat", "qryCreon", "")
txtPrix = DLookup("prix", "qryCreon", txtDate)

La première formule pourrait se trouver dans un contrôle texte
invisible, bien vérifier pendant les tests qu'il se calcul en premier.

Sinon on est obligé de mettre quelque part une procédure avec
txtDate.Requery
txtPrix.Requery
___________________________________
Fguy a écrit, le 06/02/2011 17:04 :
?Salut Gloops,

J'ai tenté ceci, mais ça ne va pas.
Je suis plutôt genre débutant.

Private Sub Query_Click()
Dim LePrix
LePrix = DLookup("CreonPrix", "qryCreon", _
"tblAchat.DateAchat=Max(tblAchat.DateAchat)")
MsgBox " " & LePrix
End Sub

J'ai comme erreur:
Impossible d'avoir une fonction d'agrégat dans la clause where
(tblAchat.dateAchat=max((tblAchat,dateAchat))

Voilà, voilà.
Donc, mon but est d'afficher le prix d'un médicament avec la date la
plus récente.
@+
Guy FALESSE

"Gloops" a écrit dans le message de groupe de discussion :
iimatt$ppq$

Fguy a écrit, le 06/02/2011 13:46 :
?Bonjour à tous,

J'ai tenté de faire ceci:

SQLCreon = "SELECT tblAchat.Articles,
tblAchat.PrixAchat,tblAchat.DateAchat FROM tblAchat WHERE
tblAchat.Articles= ""Creon Caps 100X150 Mg""" _
And tblAchat.DateAchat = DMax("tblAchat.DateAchat")
Set rstAchat = maBD.OpenRecordset(SQLCreon)
rstAchat.MoveLast
If rstAchat.RecordCount > 0 Then
Me![CreonPrix] = rstAchat!prixachat
Else
Me![CreonPrix] = 0
End If

Mais, je reçois le message: erreur de compilation
argument non facultatif.

Que puis-je faire?

D'avance merci,

Guy FALESSE
Gloops
Le #23093831
OK bonne nuit.
En dormant je tâcherai de réviser les conjugaisons :)

___________________________________
Fguy a écrit, le 06/02/2011 19:09 :
?salut Gloops,

Merci pour ta réponse. :-)
Mais, ce sera pour demain, le test.
En attendant, bonne soirée. :-)
@+
Guy FALESSE

Fguy
Le #23097481
?Salut Gloops,

On a des problème de conjugaison, ah! La langue française a de ces
difficultés. :-)
Pour en revenir à nos moutons, voilà ce que j'ai fait en suivant tes
instructions:

Private Sub Commande8_Click()
Dim txtDate As String, txtPrix As String
txtDate = DMax("tblAchat.DateAchat", "qryCreon", "")
MsgBox "date: " & txtDate
txtPrix = DLookup("prixachat", "qryCreon", txtDate)
MsgBox "prix: " & txtPrix

End Sub

La date, ça va, par contre le prix n'est pas bon.
J'ai essayé en mettant des guillemets à TxtDate, mais là, j'ai une erreur
2001.
J'ai essayé aussi à faire une requête avec les paramètres Max("dateAchat")
mais on me dit qu'il ajouter des entêtes ou quoi, je n'ai rien compris.
On ne sait pas faire une requête avec max("DateAchat"), ce serait plus
simple, enfin, sans doute :-)
Voilà,
@+

Guy FALESSE


"Gloops" a écrit dans le message de groupe de discussion :
iimtbg$eij$

OK bonne nuit.
En dormant je tâcherai de réviser les conjugaisons :)

___________________________________
Fguy a écrit, le 06/02/2011 19:09 :
?salut Gloops,

Merci pour ta réponse. :-)
Mais, ce sera pour demain, le test.
En attendant, bonne soirée. :-)
@+
Guy FALESSE

Gloops
Le #23097471
Fguy a écrit, le 07/02/2011 16:07 :
J'ai essayé aussi à faire une requête avec les paramètres
Max("dateAchat") mais on me dit qu'il ajouter des entêtes ou quoi, je
n'ai rien compris.



A tout hasard, peut-être essayer de transcrire le message ?
Quelquefois c'est en cliquant sur le bouton Aide qu'on a le numéro
d'erreur, ça aide aussi ça.
Déjà avec tout ça, ce n'est pas certain qu'on y pige quelque chose,
alors sans ...

ça se passe dans une procédure, pas vrai ?
Alors je la verrais bien commencer par
___
On Error Goto ErrProcedure
___

Et puis la finir par
___
Exit Sub
ErrProcedure:

MsgBox "Erreur n° " & Err.Number & " : " + Err.Description
Debug.Print "Erreur n° " & Err.Number & Err.Description
Stop
End Sub
___

ça permet, ensuite, de récupérer le message d'erreur dans la fenê tre
d'exécution, qui s'ouvre par les touches Ctrl G.


On ne sait pas faire une requête avec max("DateAchat"), ce serait plu s
simple, enfin, sans doute :-)



Voilà une sage idée.
As-tu essayé ?


Pour tout dire là je ne suis pas très concentré, il se peut que j'a ie
loupé des trucs, mais les renseignements complémentaires ne peuvent p as
nuire.
Gloops
Le #23097551
Gloops a écrit, le 07/02/2011 16:19 :
MsgBox "Erreur n° " & Err.Number & " : " + Err.Description
Debug.Print "Erreur n° " & Err.Number & Err.Description



Tu vas bien savoir remettre le double point ? ;)
db
Le #23097611
Le 07/02/2011 16:07, Fguy a écrit :
?Salut Gloops,

On a des problème de conjugaison, ah! La langue française a de ces
difficultés. :-)
Pour en revenir à nos moutons, voilà ce que j'ai fait en suivant tes
instructions:

Private Sub Commande8_Click()
Dim txtDate As String, txtPrix As String
txtDate = DMax("tblAchat.DateAchat", "qryCreon", "")
MsgBox "date: " & txtDate
txtPrix = DLookup("prixachat", "qryCreon", txtDate)
MsgBox "prix: " & txtPrix

End Sub



Et ceci ? :

Private Sub Commande8_Click()
Dim Prix as double
Prix = DLookup("prixachat", "qryCreon", _
"DateAchat=#" & DMax("DataAchat","qryCreon") & "#)
MsgBox "prix: " & Prix



db
Publicité
Poster une réponse
Anonyme