Récuperation du derniere valeur d'un champ de table access

abdmoneem Messages postés 8 Date d'inscription samedi 2 décembre 2000 Statut Membre Dernière intervention 17 juin 2015 - 8 févr. 2009 à 15:50
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012 - 27 janv. 2012 à 14:03
salut pour tous

S'il vous plait je suis débutant à l'utilisation de vb

je suis entrain de faire un petit programme avec une base de données access
mon probléme c'est que je veut récuperer dans un champ de texte la dérnière valeur d'un table de la base de données
et je le veut qu'il soit afficher dans le champs automatiquement dés que la forme s'ouvre ( .show) en ajoutant 1 à la valeur récuperer et en s'auvegardant se champ de texte de la form dans le champ du table de la base de données , c'est à dire un update


je vais metre le code de la connection a la base

Public rs As ADODB.Recordset
Public cn As ADODB.connection
Public rsauthentification As ADODB.Recordset

Public Sub connect()

Dim Conn As String
Set cn = New ADODB.connection
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = "C:\Documents and Settings\user\Bureau\TESTLOGIN.mdb"
cn.Open
End Sub

et le code de la forme est

Private Sub Form_Load()
On Error Resume Next

connect
Set rsauthentification = New ADODB.Recordset
rsauthentification.Open "select * from authentification", cn, 1, 2
Nres.Text = rsauthentification.Fields(0).Value + 1


pour ce code il me donne la premire valeur du tableau et il ajoute 1

s'il vous plait aider moi par le code qui convient et merci dés le début

2 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
8 févr. 2009 à 21:10
Salut
Commence par supprimer les "On Error Resume Next" comme ça tu verras où se passe le problème.
Si tu avais chargé quelques sources sur ce sujet, tu aurais vu qu'il faut gérer le contenu du RecordSet :
Voir l'aide (et les exemples liés) de : .MoveFirst, .MoveLast, .MoveNext ...
Si tu ne dois agir que sur une seule donnée récupérée, je te conseille de filtrer dans ta requète LE seul enregistrement dont tu as besoin, comme ça tu pourras facilement faire le Update sans pour autant réécrire tout le contenu de ta DB :
   "Select Max(monChamp) From maTable"

Imagine que le RecordSet n'est qu'une copie de ce qu'il y a dans ta DB, filtré avec ta requète.
Si, par exemple, tu modifies le contenu de ton RecordSet, il suffira de réintégrer cette donnée dans la DB avec un simple Update

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_shades Messages postés 8 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 13 février 2012
27 janv. 2012 à 14:03
Bonjour,

J'ai une question qui se rapproche de celle-ci je penses.

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 :
=SI(MAX(SI(C$2:C4=C5;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
0