Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Quel est le N° de l'enregistrement que je suis en train de créer ?

3 réponses
Avatar
Jac
Bonjour à tous,

je butte sur un petit problème dont voici le résumé :

Etape 1
depuis un formulaire, je génère grâce à un module, un nouvel enregistrement.
Ça fonctionne super bien. (Dim rst As DAO.Recordset / With rst / .addNew /
etc...)
L'enregistrement se crée en générant un N° automatique dans la table cible.

Etape 2
Suite à cette "manipulation", j'ai besoin de créer dans une table de détail,
de 1 à x enregistrements en fonction de données qui se trouvent dans mon
formulaire et pour cela, j'ai besoin de récupérer le N° de l'enregistrement
que je viens de créer afin d'alimenter le champ qui me servira à faire la
liaison entre les deux tables (1 -> n).

Et c'est là que ça coince. Je ne sais pas comment faire pour aller chercher
ce N° en vba.

Merci d'avance à qui me mettra sur la voie.

Jac

3 réponses

Avatar
ze Titi
Bonjour Jac

Si c'est un numéro automatique, la plupart du temps, c'est du
séquentiel. Je vois donc bien l'utilisation de la fonction

DLast("tonNuméro","taTable")


dans ton message <456d15b0$0$12721$ du
Bonjour à tous,

je butte sur un petit problème dont voici le résumé :

Etape 1
depuis un formulaire, je génère grâce à un module, un nouvel enregistrement.
Ça fonctionne super bien. (Dim rst As DAO.Recordset / With rst / .addNew /
etc...)
L'enregistrement se crée en générant un N° automatique dans la table cible.

Etape 2
Suite à cette "manipulation", j'ai besoin de créer dans une table de détail,
de 1 à x enregistrements en fonction de données qui se trouvent dans mon
formulaire et pour cela, j'ai besoin de récupérer le N° de l'enregistrement
que je viens de créer afin d'alimenter le champ qui me servira à faire la
liaison entre les deux tables (1 -> n).

Et c'est là que ça coince. Je ne sais pas comment faire pour aller chercher
ce N° en vba.

Merci d'avance à qui me mettra sur la voie.

Jac


--
Voilou !
Bon code
Cordialement,

Ze Titi

Avatar
CC
Bonjour,

Juste après avoir fait ton .addnew, tu peux récupérer dans une variable de
type Long, le NuméroAuto qui vient d'être généré.

Par exemple :
Soit MATABLE = CODE_CLE (NuméroAuto), NOM, PRENOM
Monjeu = Recordset basé sur cette table

CléCreer = Valeur NuméroAuto qui vient d'être créé en faisaint le .addnew

Public Sub Test()

Dim MonJeu As Recordset
Dim CléCreer As Long

On Error GoTo Err_Test

Set MonJeu = CurrentDb.OpenRecordset("TAB_TEST")
MonJeu.AddNew
CléCreer = MonJeu!CODE_CLE
MonJeu!NOM = "Fernando"
MonJeu!PRENOM = "Menegazzo"
MonJeu.Update

End_Test:
If Not MonJeu Is Nothing Then
MonJeu.Close: Set MonJeu = Nothing
End If
Exit Sub

Err_Test:
MsgBox Err.Description
Resume End_Test
End Sub


"Jac" a écrit dans le message de
news:456d15b0$0$12721$
Bonjour à tous,

je butte sur un petit problème dont voici le résumé :

Etape 1
depuis un formulaire, je génère grâce à un module, un nouvel
enregistrement.

Ça fonctionne super bien. (Dim rst As DAO.Recordset / With rst / .addNew /
etc...)
L'enregistrement se crée en générant un N° automatique dans la table
cible.


Etape 2
Suite à cette "manipulation", j'ai besoin de créer dans une table de
détail,

de 1 à x enregistrements en fonction de données qui se trouvent dans mon
formulaire et pour cela, j'ai besoin de récupérer le N° de
l'enregistrement

que je viens de créer afin d'alimenter le champ qui me servira à faire la
liaison entre les deux tables (1 -> n).

Et c'est là que ça coince. Je ne sais pas comment faire pour aller
chercher

ce N° en vba.

Merci d'avance à qui me mettra sur la voie.

Jac




Avatar
Logipro
Bonjour Jac,

Il suffit de mettre entre le Addnew et le update quelque chose du genre afin
de récupérer le numéro unique de la table cible :

dim lngUnique as long
rstClients.Addnew
..
..
lngUnique=rstClients!NoUnique
rstClients.Update

Mais pour une base SQL tu fait ceci après le .Update

Bookmark = rstClients.LastModified
lngUnique = rstClients!NoUnique


Voilà !


Bonne continuation

Robert Simard
Logipro



"Jac" a écrit dans le message de news:
456d15b0$0$12721$
Bonjour à tous,

je butte sur un petit problème dont voici le résumé :

Etape 1
depuis un formulaire, je génère grâce à un module, un nouvel
enregistrement. Ça fonctionne super bien. (Dim rst As DAO.Recordset / With
rst / .addNew / etc...)
L'enregistrement se crée en générant un N° automatique dans la table
cible.

Etape 2
Suite à cette "manipulation", j'ai besoin de créer dans une table de
détail, de 1 à x enregistrements en fonction de données qui se trouvent
dans mon formulaire et pour cela, j'ai besoin de récupérer le N° de
l'enregistrement que je viens de créer afin d'alimenter le champ qui me
servira à faire la liaison entre les deux tables (1 -> n).

Et c'est là que ça coince. Je ne sais pas comment faire pour aller
chercher ce N° en vba.

Merci d'avance à qui me mettra sur la voie.

Jac