Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2011, 18h44   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 7
Points : 7
Par défaut Création table avec x enregistrements incrémentés

Bonjour,

Je travaille actuellement sur les Codes EAN 13 de mon entreprise.
Mon objectif est de créer une table avec tous les codes Ean13.
Sur le forum j'ai trouvé la solution pour générer la clé de contrôle.
Par contre je cherche la solution pour créer une table avec des
enregistrements incrémentés de 000001 à 999999
Une fois faite je pourrais donc concatener le Code société et la clé de contrôle.

Avez vous une idée?
D'avance merci pour votre aide
Stsym
stsym est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 20h03   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Qui dit, zéro non significatif, dit champs de type texte.

Il faut te créer une fonction pour incrémenter un champ texte lors de la création de chaque fiche.

Un exemple en vba

Code :
1
2
 
nouveauNumero  = format(dmax("val(Champtexte)","Table")+1,"00000")
Notes que tu peux également stocker la valeur numérique dans la table et utiliser une partie de cette fonction pour afficher avec le bon format.

Code :
format(dmax("ChampNumerique","Table"),"00000")
Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/05/2011, 05h00   #3
Invité régulier
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 7
Points : 7
Bonjour Loufab
Merci pour ta réponse rapide .
Je vois que je n'ai pas été précis dans ma question.
En effet ce que je souhaite c'est générer en automatique dans le champ d'une table des valeurs incrémentées de 000001 à 999999.

Merci encore pour ton aide.
Georges
stsym est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 05h50   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 616
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 616
Points : 30 961
Points : 30 961
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Loufab t'a donné une piste, mais veux-tu une incrémentation au fur et à mesure de la saisie des enregistrement ou créer directement une table avec tout ?

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 09h43   #5
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Pour créer les enregistrement de 1 à 99999 il faut faire une boucle avec l'ouverture d'un recordset puis l'ajout d'un enrgistrement.

Regarde le tuto DAO. Tout y est.

un exemple

Code :
1
2
3
4
5
6
7
8
9
10
dim rst as recordset
set rst = currentdb.openrecordset("table")
 
for i = 1 to 99999
   rst.addnew
   rst.fields("champ") = format(i,"00000")
   rst.update
next
rst.close
set rst = nothing
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/05/2011, 16h47   #6
Invité régulier
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 7
Points : 7
Bonjour,

Je vais suivre tes conseils et vais chercher dans le tuto.

J'ai essayé le code mais j'ai un message qui dit .
Erreur de compilation Variable (i) non définie.

Merci encore
StSym
stsym est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 06h15   #7
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 616
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 616
Points : 30 961
Points : 30 961
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Loufab t'a donné le code, mais il faut essayer de l'analyser avant de faire du copier/coller.

Il a juste oublié la déclaration de la variable i.

Donc écrit au début du code :

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 05h07   #8
Invité régulier
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 7
Points : 7
Bonjour

Suite à vos informations j'utilise le code ci-dessous.
Par contre je n'arrive pas à créer les 999999 enregistrements, je suis bloqué à 32766.
A 32767 j'ai un message "Dépassement de capacité".

Merci
StSym


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub MonBouton_Click()
Dim rst As Recordset
Dim i As Integer
 
Set rst = CurrentDb.OpenRecordset("table")
For i = 1 To 32766
   rst.AddNew
   rst.Fields("champ") = Format(i, "000000")
   rst.Update
Next
rst.Close
Set rst = Nothing
End Sub
stsym est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 05h23   #9
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 616
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 616
Points : 30 961
Points : 30 961
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

C'est normal, et c'est de ma faute

Remplace la déclaration de i par, le type Integer est limité.



Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 09h55   #10
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
D'un autre coté tu ne fais pas trop d'effort...
F1 sur le message te donne le pourquoi.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 18h50   #11
Invité régulier
 
Inscription : novembre 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 35
Points : 7
Points : 7
Bonsoir Loufab et Philippe
Merci pour votre aide car tout fonctionne.

Grâce à cette question vous m'avez permis de découvrir:
le tuto DAO (
que la touche F1 donnait le "pourquoi"sur une message d'erreur.
les subtilités des variables ( integer & long & ...) que je suis loin de maîtriser

et surtout qu'il me restait beaucoup à apprendre
Merci

Cdt
StSym
stsym est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h57.


 
 
 
 
Partenaires

Hébergement Web