Parcourir une table pour incrémenter une référence
3 réponses
Hervé DUCARNE
Bonjour,
Je bute sur un souci, mais je ne vois pas o=F9 :-(
Sur Access XP.
En fait, j'ai dans une table une r=E9f=E9rence (code_compta) =
alphanum=E9rique, compos=E9e de :
1 lettre correspondant =E0 un =E9tablissement
2 lettres pour le type de bien
2 chiffres pour l'ann=E9e
3 chiffres pour un num=E9ro d'ordre
Cette r=E9f=E9rence est donc unique.
Jer voudrais que le num=E9ro d'ordre s'autoincr=E9mente pour que =
j'obtienne, par exemple :
AMA08001
AMA08002
AMB08001
AMC08001
AMA09001
...
...
Je pensais proc=E9der de la mani=E8re suivante :
Je cherche dans la table le num=E9ro le + =E9lev=E9 correspondant =E0 =
l'=E9tablissement, le type de bien et l'ann=E9e saisis, et je rajoute 1.
Je bloque d=E9j=E0 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=E9es
Set db =3D Curentdb()
domaine =3D "Select code_compta From MOBILIER"
' Ouverture du recordset
Set rst =3D db.OpenRecordset(domaine, dbOpenForwardOnly, dbReadOnly)
' on parcourt la table
Do Until rst.EOF
rst.MoveNext
result =3D rst
MsgBox result
Loop
' Fermeture du Recordset
rst.Close
Le msgbox est l=E0 pour test.
malheureusement, j'ai une erreur, type "incompatibilit=E9 de type" sur =
mon msgbox...
J'ai la r=E9f=E9rence m$ dao 3.6 de coch=E9e.
Quelqu'un peut-il me dire qu'ai je oubli=E9 ou, s'il voit une fa=E7on + =
simple / propre d'incr=E9menter cette r=E9f=E9rence ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michel chambrillon
Bonjour Rst est le recordset complet donc result=rst n'as pas de sens essaie result=rst!code_compta @ plus Michel "Hervé DUCARNE" a écrit dans le message 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
Bonjour
Rst est le recordset complet donc
result=rst n'as pas de sens
essaie
result=rst!code_compta
@ plus
Michel
"Hervé DUCARNE" <h.ducarne@lepont.asso.invalid.fr> a écrit dans le message
de news:OmOhFWsWJHA.556@TK2MSFTNGP06.phx.gbl...
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 ?
Bonjour Rst est le recordset complet donc result=rst n'as pas de sens essaie result=rst!code_compta @ plus Michel "Hervé DUCARNE" a écrit dans le message 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
"michel chambrillon" a écrit dans le 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
"michel chambrillon" <michel.chambrillon@gmail.comAOT> a écrit dans le message de news:631EDB80-E2F3-4D8A-B73A-2AC2E239199D@microsoft.com...
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.
"michel chambrillon" a écrit dans le 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
michel chambrillon
Re Bjour Oui il n'y a qu'un champ ( le code) mais aussi tous les enregistrements dans RST @Plus "Hervé DUCARNE" a écrit dans le message de news:%
"michel chambrillon" a écrit dans le 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
Re Bjour
Oui il n'y a qu'un champ ( le code) mais aussi tous les enregistrements dans
RST
@Plus
"Hervé DUCARNE" <h.ducarne@lepont.asso.invalid.fr> a écrit dans le message
de news:%23n3y8itWJHA.4632@TK2MSFTNGP04.phx.gbl...
"michel chambrillon" <michel.chambrillon@gmail.comAOT> a écrit dans le
message de news:631EDB80-E2F3-4D8A-B73A-2AC2E239199D@microsoft.com...
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.
Re Bjour Oui il n'y a qu'un champ ( le code) mais aussi tous les enregistrements dans RST @Plus "Hervé DUCARNE" a écrit dans le message de news:%
"michel chambrillon" a écrit dans le 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.