Bonjour a tous,
Je débute avec VB2005 et j'aimerais savoir comment je pourrai faire pour récupérer le nº du dernier enregistrement de ma base de données.
Merci.
Jcbé[^],
Ma clef est un champ auto et je voudrais le récupérer pour pouvoir ajouter des données dans une seconde table en fonction de ce nº.
J'accède a ma base de données via une connection OleDb.
Chris...,
Il y a une relation entre mes 2 tables mais quand j'enregistre mes données via VB,les données de lapremière table sont bien enregistrées mais pas celles de la seconde table.
Bonsoir,
je pense plutôt à une erreur de type de donnée.
Si ton Id est auto dans ta 1° table,
il doit être obligatoirement Entier Long dans ta 2° table
Dolphin Boy,
j' avoue que je ne saisi pas bien...
tu affirmes une chose et tu conseilles le contraire.
La première séquence est la bonne,
et ton raisonnement est correct, car il s' agit bien de Max...
mais tu rajoutes
^^Pour ça c'est plutôt : ...COUNT...
Sinon opte pour une requette SQL qui te renvoi [mailto:l'@@IDENTITY l'@@IDENTITY] de la ligne crée, et que tu réutilise dans la 2nd table, je l'ai fait sur un serveur SQL pour une validation de commande, je créais une ligne commandevalidée qui avais un ID et dans les articles commander du gars y'avais une colonne dédiée à l'ID de la commandevalidée, si la valeur était à -1 (par defaut) alors l'article n'était pas valider.
la commande récupèrais l'ID de la nouvelle validation pour l'enregistrer sur chaque ligne des articles à valider. le tout dans une seule procédure stockée.
Mais stockée ou pas tu peux le refaire en SQL commande direct ça pareil ;)
Avis personnel :
Utiliser un Entier Long plutôt qu' un n° auto.
-Sa gestion est plus facile
-vous garderez toujours le contrôle sur votre Id.
-Possibilité de réinitialiser à 0
-Possibilité d' insertion pour combler un espacement
entre deux valeurs
Si c' était encore moi :
Table° 1 Table° 2
Id:Entier Long Id:Entier Long
Pour ajouter des lignes aux deux tables
'------------------------------------------------------
Function MAJ () As Boolean
- je récupère le dernier de Table° 1, que j' incrémente de 1
On Error Goto err_ADD
BeginTrans
j' insère une ligne dans Table°1 (Id récupéré)
j' insère une ligne dans Table°2 (même Id)
CommiTrans
MAJ =True
Exit Function
err_ADD:
RollBack
End Function
'-------------------------------------------------------
Ainsi si la transaction échoue, les deux insertions
sont annulées d' un coup.
Je comprend que parfois on cherche la facilité.
Avec le n° auto, on peut ajouter des lignes sans
se soucier de l' Id, mais ce n' est que des problèmes !