Récupérer sous un formulaire access la dernière valeur entrée dans un champ

cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012 - 9 févr. 2012 à 16:47
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012 - 13 févr. 2012 à 16:33
Bonjour,

Voilà, je souhaiterais récupérer sous un formulaire access la dernière valeur entrée dans un champ lié à une sélection d'une zone de liste.

Je sélectionne une valeur dans "zdlBeneficiaire" disons Bénéficiaire X22 et je rentre la valeur dans du champs "zdtCompteurA" & "zdtCompteurD", la prochaine fois que le Bénéficiaire X22 est sélectionné je souhaiterais que la valeur de son champ "zdtCompteurA" soit la dernière entrée pour "zdtCompteurD".

Sous Excel je sais, c'est :
Code :

SI(MAX(SI(C$2:C4C5;LIGNE($2:4)))=0;0;DECALER(E$2;MAX(SI(C$2:C4=C5;LIGNE($2:4)))-2;))


Mais sous Access c'est une autre histoire.

Très cordialement
Sylvain

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 févr. 2012 à 07:59
tu cherches ça ?

SELECT MAX(zdtCompteurD) WHERE zdtCompteurA=xxxx


j'ai du mal a comprendre...

j'ai laché en lisant
je rentre la valeur dans du champs "zdtCompteurA" & "zdtCompteurD"



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012
10 févr. 2012 à 13:53
Bonjour Renfield,

Peut-être comprendrais tu mieux ce que je cherche si je pouvais te faire parvenir mon fichier.

SELECT MAX(zdtCompteurD) WHERE zdtCompteurA=xxxx

le =xxx correspondrait à quoi ?
L'autre soucis c'est que zdtCompteurA & zdtCompteurD peuvent être NULL cela ne provoquerais pas une erreur sous access ?

Cordialement,
[font=Arial]Shades[/font=Arial
0
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012
10 févr. 2012 à 14:02
Renfield,

Je te fais parvenir le code que j'ai mis en place, sans certitude que cela soit bien ainsi.

Private Sub zdlBeneficiaire_AfterUpdate()
    'Initialiser la modification du Bénéficiaire
    If Not IsNull(Me![zdlBeneficiaire]) Then

        Me![zdtCompteurA] = 'C'EST ICI QUE JE SOUHAITERAIS INDIQUER QUE LA VALEUR = SELECT MAX(zdtCompteurD)'
        Me.zdtCompteurA.Locked = False
        Me![zdtPompeD] = 0
        Me.zdtPompeD.Locked = False
        Me![zdtPompeA] = 0
        Me.zdtPompeA.Locked = False
        Me![zdtQte] = 0
        Me.zdtQte.Locked = False
        Me![ZdtTotalKm] = 0
        Me.ZdtTotalKm.Locked = False
    'Des enregistrements de produit vides signifient que l'utilisateur veut supprimer la ligne d'article
    Else
        eh.TryToRunCommand acCmdDeleteRecord
    End If
End Sub


Cordialement,
[font=Arial]Shades[/font=Arial
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
10 févr. 2012 à 15:21
Tu dis ""zdtCompteurD", la prochaine fois que le Bénéficiaire X22 est sélectionné je souhaiterais que la valeur de son champ "zdtCompteurA""

Ok mais as tu un champs dans ta data ou justement "zdtCompteurD" est enregistrer? Un fichier ou un registre?

Il faut que nous sachions ou que tu gère l'information "zdtCompteurD" en mémoire.

Je pense que actuellement ton formulaire doit avoir un bouton "ok" qui valide les chois de l'utilisateur?

Il faudrait que sous le code du bouton "ok", ils aient des ligne qui disent par exemple "zdtCompteurD on va l’enregistrer dans le champs dernier choix". Ainsi, sous ta liste boxe "zdlBeneficiaire" tu pourra mettre le code
SELECT zdtCompteurD WHERE zdtCompteurA=zdlBeneficiaire
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012
10 févr. 2012 à 15:54
Bonjour 4u4me4us,

C'est la zdlBeneficiaire qui provoque l’événement "Private Sub zdlBeneficiaire_AfterUpdate()" du code et qui doit, je penses, appeler "SELECT MAX(zdtCompteurD)"
Toute les données sont stockées pour faire par la suite des statistiques, et éditer un tableau spécifique pour la TIPP.

Ici le fichier Access correspondant à ce sujet

Cordialement,
Shades
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
10 févr. 2012 à 16:16
Franchement je ne v pas me plonger dans ta base de donnée.

Celons moi il faut (si tu n as pas) un champs ou une table qui enregistre les derniers choix de l'utilisateur.

Comme cela quand tu en aura besoin tu pourras consulter le champ ou la table en question.

Le problème, celons moi, et que tu n'as pas de zone mémoire pour réaliser ton idée. Trouve ou crée en une et cela devrais jouer.
0
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012
10 févr. 2012 à 16:57
ReBonjour 4u4me4us

Désolé je pensais être dans un forum d'entre-aide, étant débutant Access c'est ce que je recherchais, je dois m'être trompé.
Le problème, Selon moi, eSt que tu n'as pas de zone mémoire pour réaliser ton idée. TrouveS ou créeS en une et cela devraiT jouer

ça ce n'est pas une aide, limite dire "tu m'ennuie passes ton chemin", alors à nouveau désolé de te faire perdre ton temps, enfin te concernant je me permet de te corriger les fautes au moins cela aura eu une utilité que tu me réponde!

Merci encore pour ton "aide" 4u4me4us.

Sinon pour les vrais personnes sympas de ce forum, et il y en a c'est sur comme "Renfield" qui a une réponse qui me semble être ce que je cherche, une idée sur mon problème pour intégrer ce que Renfield me propose ? Merci d'avance.

Cordialement
Shades
0
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012
10 févr. 2012 à 17:14
Auto correction : Les VraiEs Personnes sympas
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 févr. 2012 à 03:14
testes la requete dans access, pour t'assurer que c'est bien celle qu'il te faut...

pour la suite, un

Dim oRS as Recordset 
set oRS = CurrentDb.OpenRecordset("SELECT ...")
[...] = oRS.Fields(0)
oRS.Close


me semble suffisant

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
13 févr. 2012 à 09:48
Dis, tu te rappelles que nous ne sommes pas collègue de bureau!?

Tu dis "étant débutant Access", tu crois que cela justifie que tu m’envoies une DB de 4 tables 4 formulaires??En analyse aussi tu es un grand débutant!!! Si tu veux retrouver une information il faut savoir ou la chercher, mais pour la trouver il faut qu'elle soit stockée. Plus claire je ne peu pas !!!!

De tout façon je n'ai pas l'objectif ni l'envie d'avoir réponse à tout.

De plus ne t’inquiète pas. Si tu ne réussi pas ton projet tu pourras toujours te faire engager comme correcteur d’orthographe.
0
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012
13 févr. 2012 à 16:33
Bonjour Renfield,

Merci de suivre et de m'aider sur ce sujet.

Alors j'ai fait une requête :
R1 :
SELECT TbMvt.Beneficiaire, TbMvt.CompteurD AS ValeurMaxi
FROM TbMvt;


Ton code
Dim oRS as Recordset 
set oRS = CurrentDb.OpenRecordset("SELECT R1")
[...] = oRS.Fields(0)
oRS.Close
Je le place dans un évent pour la zdtCompteurA ? J'ai bien compris ? Ou dans le code de mon 4ème message dans la partie "Me.zdtCompteurA.Locked = False"

Je suis désolé de te poser toutes ces questions mais je suis un vrai débutant et le mon d'Access est un peu étrange pour moi :)

Cordialement,
Shades
0
Rejoignez-nous