Parcourir une table pour incrémenter une référence

Le
Hervé DUCARNE
Bonjour,

Je bute sur un souci, mais je ne vois pas où :-(

Sur Access XP.

En fait, j'ai dans une table une référence (code_compta) =
alphanumérique, composée de :
1 lettre correspondant à un établissement
2 lettres pour le type de bien
2 chiffres pour l'année
3 chiffres pour un numéro d'ordre
Cette référence est donc unique.
Jer voudrais que le numéro d'ordre s'autoincrémente pour que =
j'obtienne, par exemple :
AMA08001
AMA08002
AMB08001
AMC08001
AMA09001



Je pensais procéder de la manière suivante :
Je cherche dans la table le numéro le + élevé correspondant à =
l'établissement, le type de bien et l'année saisis, et je rajoute 1.

Je bloque déjà sur la lecture dans la table.

Voici mon code :
Dim db As DAO.Database, rst As DAO.Recordset, domaine As String, result =
As String

' Ouverture de la base de données
Set db = Curentdb()
domaine = "Select code_compta From MOBILIER"
' Ouverture du recordset
Set rst = db.OpenRecordset(domaine, dbOpenForwardOnly, dbReadOnly)
' on parcourt la table
Do Until rst.EOF
rst.MoveNext
result = rst
MsgBox result
Loop
' Fermeture du Recordset
rst.Close

Le msgbox est là pour test.
malheureusement, j'ai une erreur, type "incompatibilité de type" sur =
mon msgbox

J'ai la référence m$ dao 3.6 de cochée.

Quelqu'un peut-il me dire qu'ai je oublié ou, s'il voit une façon + =
simple / propre d'incrémenter cette référence ?

Merci de m'avoir lu.


--
RV
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michel chambrillon
Le #18102221
Bonjour
Rst est le recordset complet donc
result=rst n'as pas de sens
essaie
result=rst!code_compta
@ plus
Michel
"Hervé DUCARNE" de news:
Bonjour,

Je bute sur un souci, mais je ne vois pas où :-(

Sur Access XP.

En fait, j'ai dans une table une référence (code_compta) alphanumérique,
composée de :
1 lettre correspondant à un établissement
2 lettres pour le type de bien
2 chiffres pour l'année
3 chiffres pour un numéro d'ordre
Cette référence est donc unique.
Jer voudrais que le numéro d'ordre s'autoincrémente pour que j'obtienne, par
exemple :
AMA08001
AMA08002
AMB08001
AMC08001
AMA09001
...
...

Je pensais procéder de la manière suivante :
Je cherche dans la table le numéro le + élevé correspondant à
l'établissement, le type de bien et l'année saisis, et je rajoute 1.

Je bloque déjà sur la lecture dans la table.

Voici mon code :
Dim db As DAO.Database, rst As DAO.Recordset, domaine As String, result As
String

' Ouverture de la base de données
Set db = Curentdb()
domaine = "Select code_compta From MOBILIER"
' Ouverture du recordset
Set rst = db.OpenRecordset(domaine, dbOpenForwardOnly, dbReadOnly)
' on parcourt la table
Do Until rst.EOF
rst.MoveNext
result = rst
MsgBox result
Loop
' Fermeture du Recordset
rst.Close

Le msgbox est là pour test.
malheureusement, j'ai une erreur, type "incompatibilité de type" sur mon
msgbox...

J'ai la référence m$ dao 3.6 de cochée.

Quelqu'un peut-il me dire qu'ai je oublié ou, s'il voit une façon + simple /
propre d'incrémenter cette référence ?

Merci de m'avoir lu.


--
RV
Hervé DUCARNE
Le #18102551
"michel chambrillon"
Bonjour
Rst est le recordset complet donc
result=rst n'as pas de sens
essaie
result=rst!code_compta
@ plus
Michel




Bonjour,

OK, cela fonctionne, ce qui m'a induit en erreur c'est que je mets :
domaine = "Select code_compta From MOBILIER"
' Ouverture du recordset
Set rst = db.OpenRecordset(domaine, dbOpenForwardOnly, dbReadOnly)

Donc, je sélectionne déjà *que* le code_compta dans mon rst.

Quel con je fais !

Bon, ça marche, me reste "plus qu'à" gérer l'incrémentation selon ce que l'utilisateur saisit.

Merci.

A+
--
RV
michel chambrillon
Le #18103441
Re Bjour
Oui il n'y a qu'un champ ( le code) mais aussi tous les enregistrements dans
RST
@Plus
"Hervé DUCARNE" de news:%

"michel chambrillon" message de news:
Bonjour
Rst est le recordset complet donc
result=rst n'as pas de sens
essaie
result=rst!code_compta
@ plus
Michel




Bonjour,

OK, cela fonctionne, ce qui m'a induit en erreur c'est que je mets :
domaine = "Select code_compta From MOBILIER"
' Ouverture du recordset
Set rst = db.OpenRecordset(domaine, dbOpenForwardOnly, dbReadOnly)

Donc, je sélectionne déjà *que* le code_compta dans mon rst.

Quel con je fais !

Bon, ça marche, me reste "plus qu'à" gérer l'incrémentation selon ce que
l'utilisateur saisit.

Merci.

A+
--
RV
Publicité
Poster une réponse
Anonyme