Incrémentation
Fermé
EmilieRose
-
24 févr. 2010 à 14:36
angelus1821 Messages postés 191 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 - 26 févr. 2010 à 10:48
angelus1821 Messages postés 191 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 - 26 févr. 2010 à 10:48
A voir également:
- Incrémentation
- Excel incrémentation automatique numéro vba - Forum VB / VBA
- Incrémentation excel ne fonctionne pas ✓ - Forum Excel
- Renommer plusieurs fichiers incrémentation - Guide
- Incrémentation Numéro VBA Excel - Forum VB / VBA
- Excel copier formule avec incrémentation partielle ✓ - Forum Bureautique
12 réponses
angelus1821
Messages postés
191
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
24 févr. 2010 à 15:50
24 févr. 2010 à 15:50
salut
plusieurs possibilités s'offrent à toi :
tu met un bouton qui incremente l'id de la facture de 1 , quand tu cliques dessus, le numero dans ta zone de texte correspondant à l'id de la facture augmente mais faut faire attention de ne pas appuyé plusieurs fois de suite dessus ^
sinon le mieux c'est que supposons que tu as un bouton pour enregistré ta facture, à chaque fois que tu cliques dessus, tu enregsitres les données dans ta base, tu réinitialises ton formulaire et l'identifiant s'incrémente de 1
cela depend du contexte en fait, tu peux aussi l'incrémenter quand tu ouvres ton formulaire facture , pour cela au niveau code :
- tu fais une requete qui compte le nombre de facture
- tu enregistres le résultat obtenu dans une variable par ex NomVariable
- ensuite tu fais NomVariable= NomVariable+1
- et tu assignes à ton identifiant la valeur de NomVariable , puis tu l'affiche dans la zone de texte prévue à cette effet
en clair, à chaque fois que tu ouvres ton formulaire, sa te compte le nombre de facture et l'identifiant de la facture en cours sera egal aux nombre de facture + 1
je pense que tu devrais pouvoir y arriver comme cela, n'hesite pas au besoin, pour plus de précisions
bon courage :)
plusieurs possibilités s'offrent à toi :
tu met un bouton qui incremente l'id de la facture de 1 , quand tu cliques dessus, le numero dans ta zone de texte correspondant à l'id de la facture augmente mais faut faire attention de ne pas appuyé plusieurs fois de suite dessus ^
sinon le mieux c'est que supposons que tu as un bouton pour enregistré ta facture, à chaque fois que tu cliques dessus, tu enregsitres les données dans ta base, tu réinitialises ton formulaire et l'identifiant s'incrémente de 1
cela depend du contexte en fait, tu peux aussi l'incrémenter quand tu ouvres ton formulaire facture , pour cela au niveau code :
- tu fais une requete qui compte le nombre de facture
- tu enregistres le résultat obtenu dans une variable par ex NomVariable
- ensuite tu fais NomVariable= NomVariable+1
- et tu assignes à ton identifiant la valeur de NomVariable , puis tu l'affiche dans la zone de texte prévue à cette effet
en clair, à chaque fois que tu ouvres ton formulaire, sa te compte le nombre de facture et l'identifiant de la facture en cours sera egal aux nombre de facture + 1
je pense que tu devrais pouvoir y arriver comme cela, n'hesite pas au besoin, pour plus de précisions
bon courage :)
Merci pour ta réponse détailler Angelus, c'est tout sympa comme tout.
J'ai écris ceci :
Private Sub T_facture_numfacture_BeforeUpdate(Cancel As Integer)
Dim nomvariable As String
nomvariable = "SELECT count(numfacture)FROM [FACTURE];"
nomvariable = nomvariable + 1
Me.T_facture_numfiche = nomvariable
End Sub
Cela ne fonctionne pas mais je dois bien y être presque, peux-tu encore m'aider stp :D
J'ai écris ceci :
Private Sub T_facture_numfacture_BeforeUpdate(Cancel As Integer)
Dim nomvariable As String
nomvariable = "SELECT count(numfacture)FROM [FACTURE];"
nomvariable = nomvariable + 1
Me.T_facture_numfiche = nomvariable
End Sub
Cela ne fonctionne pas mais je dois bien y être presque, peux-tu encore m'aider stp :D
angelus1821
Messages postés
191
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
25 févr. 2010 à 09:00
25 févr. 2010 à 09:00
re , pas de soucis :)
moi j'aurais vu les choses sous cette angle :
oui c'est normal, tu declare nomVariable en tant que chaine , je te propose la chose suivante ( :
on suppose que tu as deja declaré ta connection, tu as l'etat suivant :
cela fait un petit moment que je n'ai pas pratiqué du access mais je penses que sa devrait allé mieux
n'hésite pas s'il y a un quelconque souci
moi j'aurais vu les choses sous cette angle :
oui c'est normal, tu declare nomVariable en tant que chaine , je te propose la chose suivante ( :
on suppose que tu as deja declaré ta connection, tu as l'etat suivant :
Private Sub T_facture_numfacture_BeforeUpdate(Cancel As Integer) Dim nomvariable As String nomvariable = "SELECT count(numfacture)FROM [FACTURE];" nomvariable correspond a ta requete donc tu ne peux pas mettre " nomvariable = nomvariable + 1 " pour cela declare un integer : dim Valeur as integer je te propose de declaré un recordset pour executé ta requete, pour cela commence par declaré un recordset au debut : dim Tonrecordset as new adodb.recordset ( en supposant que tu es en ADO) ensuite tu recuperes le resultats de ta requete dans Valeur : Valeur = TonREcordset.recfields(0) tu incremente : Valeur = Valeur + 1 ensuite tu dis que Valeur est egal à l'id de la fatcure
cela fait un petit moment que je n'ai pas pratiqué du access mais je penses que sa devrait allé mieux
n'hésite pas s'il y a un quelconque souci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci énormément Angelus :-*
Si je vais aux précédant enregistrements, j'ai bien le numéro de la facture, mais sur l'enregistrement actuel que je conçois, c'est vide/blanc, il y aura un numéro de facture une fois que j'aurai valider mon formulaire ? Je ne peux pas l'avoir directement ?
Si je vais aux précédant enregistrements, j'ai bien le numéro de la facture, mais sur l'enregistrement actuel que je conçois, c'est vide/blanc, il y aura un numéro de facture une fois que j'aurai valider mon formulaire ? Je ne peux pas l'avoir directement ?
angelus1821
Messages postés
191
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
25 févr. 2010 à 15:30
25 févr. 2010 à 15:30
re
en fait tout le code se fait dans cette procedure :
supposons qu' initialement les champs sont vides, quand tu ouvres ton formulaire facture,
tu remplis ta facture, puis tu cliques sur un bouton valider, qui enregistre ta facture.
en partant de ce principe, tu peux rajouter dans ton " form_load " le code pour obtenir un nouvelle identifiant, comme cela , lorsque tu ouvriras ton formulaire, seul le champ correspondant à l'identifiant sera remplis ( car au chargement de la page :
sinon autre solution :
tu ouvres ton formulaire sur le dernier enregistrement par ex, supposons que tu fasses un bouton " nouveau "
ce bouton dont le caption(texte sur le bouton) est " nouvelle facture " ( et tu met comme nom de ton bouton : btnEnvoyer)
dans l'evenement " sur clic " tu aura un code dans ce style :
EN clair, quand tu clique sur ton bouton, tes zones de texte se vide pour laisser place aux nouvelles données, et le titre de ton bouton change en " valider "
si tu re-cliques dessus et que le titre de ton bouton c'est " valider " alors sa t'enregistres tes nouvelles données dans la base
et le titre de ton bouton redevient " nouvelle fatcure "
en fait tout le code se fait dans cette procedure :
Private Sub T_facture_numfacture_BeforeUpdate(Cancel As Integer).
supposons qu' initialement les champs sont vides, quand tu ouvres ton formulaire facture,
tu remplis ta facture, puis tu cliques sur un bouton valider, qui enregistre ta facture.
en partant de ce principe, tu peux rajouter dans ton " form_load " le code pour obtenir un nouvelle identifiant, comme cela , lorsque tu ouvriras ton formulaire, seul le champ correspondant à l'identifiant sera remplis ( car au chargement de la page :
- tu auras compter le nombre d'enregistrement - tu l'auras assigner dans une variable, puis incrementer et tu l'aura assigner à l'identifiant il ne te restera plus qu'a remplir les autres valeur ...
sinon autre solution :
tu ouvres ton formulaire sur le dernier enregistrement par ex, supposons que tu fasses un bouton " nouveau "
ce bouton dont le caption(texte sur le bouton) est " nouvelle facture " ( et tu met comme nom de ton bouton : btnEnvoyer)
dans l'evenement " sur clic " tu aura un code dans ce style :
private sub btnEnvoyer_click() si btnEnvoyer.caption = "nouvelle facture" alors - effacer tout les champs, pour remplir de nouvelle valeur par la suite ' tes instructions .... btnEnvoyer.caption = " valider" fin si si btnEnvoyer.Caption= " valider " alors ' tu met ton code pour enregistrer tes valeurs dans la base btnEnvoyer.caption=" nouvelle Facture" fin si end sub
EN clair, quand tu clique sur ton bouton, tes zones de texte se vide pour laisser place aux nouvelles données, et le titre de ton bouton change en " valider "
si tu re-cliques dessus et que le titre de ton bouton c'est " valider " alors sa t'enregistres tes nouvelles données dans la base
et le titre de ton bouton redevient " nouvelle fatcure "
Pour avoir un numéro à l'enregistrement que je conçois, je dois mettre mon code dans form_load ? :-/
angelus1821
Messages postés
191
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
25 févr. 2010 à 15:51
25 févr. 2010 à 15:51
oui , en supposant que tu assignes un id à ta facture à l'ouverture du formulaire, mais il y a différentes façon de faire sa, cela dépend du contexte
si tu fais des facture " à la chaine " , tu peux utiliser la methode que je t'es montré avec le bouton " nouvelle facture " qui devient " valider " et une fois cliquer sur "valider " tu enregistres les valeurs et ainsi de suite...
si tu fais quelques choses d'autres avant , ensuite tu ouvres ton formulaires fatures pour etablir la facture, là oui tu peux assigner l'id au chargement
ou la solution de faciliter lol, tu fais un petit bouton sympatique , qui sur clique :
- tu va générer un nombre aléatoire ( voir fonction randomize )
- tu assignes le nombre ainsi générer dans la zone de l'identifiant et le tour est joué
sinon avec plus de précision sur le contexte de l'établissement de la facture, je pourrais peut etre y voir un peu plus clair, merci :)
si tu fais des facture " à la chaine " , tu peux utiliser la methode que je t'es montré avec le bouton " nouvelle facture " qui devient " valider " et une fois cliquer sur "valider " tu enregistres les valeurs et ainsi de suite...
si tu fais quelques choses d'autres avant , ensuite tu ouvres ton formulaires fatures pour etablir la facture, là oui tu peux assigner l'id au chargement
ou la solution de faciliter lol, tu fais un petit bouton sympatique , qui sur clique :
- tu va générer un nombre aléatoire ( voir fonction randomize )
- tu assignes le nombre ainsi générer dans la zone de l'identifiant et le tour est joué
sinon avec plus de précision sur le contexte de l'établissement de la facture, je pourrais peut etre y voir un peu plus clair, merci :)
J'ai donc supprimé la première procédure pour la mettre dans form_load, mais cela ne fonctionne plus.
L'erreur est ici : Valeur = Tonrecordset.recfields(0)
Méthode introuvable...
L'erreur est ici : Valeur = Tonrecordset.recfields(0)
Méthode introuvable...
angelus1821
Messages postés
191
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
25 févr. 2010 à 16:01
25 févr. 2010 à 16:01
faut voir comment tu declares ton recordset, sinon je te dis sa demain ou peut etre dans la soirée si j'ai le temps , là je n'ai pu le temps
n'hesite pas à me MP au besoin, bon courage
n'hesite pas à me MP au besoin, bon courage
angelus1821
Messages postés
191
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
26 févr. 2010 à 10:48
26 févr. 2010 à 10:48
re ;)
alors on à ceci :
est tu en ADO ou DAO ?
au début aussi il faut declaré ton recordset, si tu es en ADO , tu fais comme ceci :
dim Tonrecordset as new adodb.recordset
normalment il devrait le trouvé automatiquement quand tu tape la syntaxe
sinon tu fais comme ceci :
dim Tonrecordset as recordset
une fois declaré il faut " l'ouvrir " le recordset, je penses que c'est comme suivant
essaye de mettre déja cela
alors on à ceci :
Valeur = Tonrecordset.recfields(0) Méthode introuvable...
est tu en ADO ou DAO ?
au début aussi il faut declaré ton recordset, si tu es en ADO , tu fais comme ceci :
dim Tonrecordset as new adodb.recordset
normalment il devrait le trouvé automatiquement quand tu tape la syntaxe
sinon tu fais comme ceci :
dim Tonrecordset as recordset
une fois declaré il faut " l'ouvrir " le recordset, je penses que c'est comme suivant
Tonrecordset.open (TaRequete ) Tonrecordset.execute
essaye de mettre déja cela