Vitorj
Messages postés11Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention15 novembre 2011
-
7 nov. 2006 à 19:10
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
8 nov. 2006 à 14:58
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.
Vitorj
Messages postés11Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention15 novembre 2011 7 nov. 2006 à 19:24
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.
Vitorj
Messages postés11Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention15 novembre 2011 7 nov. 2006 à 20:35
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.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 7 nov. 2006 à 22:56
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...
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 8 nov. 2006 à 00:15
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 ;)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 8 nov. 2006 à 14:58
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 !