Remplissage automatique des enregistrements d'un champ (Acte 2)
6 réponses
Willi2004
Bonjour!
Dans un formulaire, pour le remplissage automatique des enregistrements
successifs d'un champ en utilisant la valeur entrée dans le premier de ces
enregistrements, j'utilise le code suivant associé à l'après mise à jour du
champ en question (suggéré par 3stone): Me.MonChamp.DefaultValue="""" &
Me.MonChamp & """" '
Ce code fonctionne parfaitement bien lors de l'ajout de nouveaux
enregistrements à mon formulaire.
En revanche, il ne fonctionne plus pour des enregistrements déjà existants
mais laissés vides.
Pourriez-vous s'il vous plaît me suggérer le code à utiliser dans ce cas?
Merci pour votre aide.
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
3stone
Salut,
"Willi2004" | Dans un formulaire, pour le remplissage automatique des enregistrements | successifs d'un champ en utilisant la valeur entrée dans le premier de ces | enregistrements, j'utilise le code suivant associé à l'après mise à jour du | champ en question (suggéré par 3stone): Me.MonChamp.DefaultValue="""" & | Me.MonChamp & """" ' | Ce code fonctionne parfaitement bien lors de l'ajout de nouveaux | enregistrements à mon formulaire. | En revanche, il ne fonctionne plus pour des enregistrements déjà existants | mais laissés vides. | Pourriez-vous s'il vous plaît me suggérer le code à utiliser dans ce cas?
Effectivement, pour utiliser la valeur précédente comme valeur "par défaut", il faut bien une... valeur précédente ! Si tu as des enregistrements qui sont "laissés vides" (?) on peut difficilement utiliser une valeur par défaut. Quelle serait-elle d'ailleur ?
"Willi2004"
| Dans un formulaire, pour le remplissage automatique des enregistrements
| successifs d'un champ en utilisant la valeur entrée dans le premier de ces
| enregistrements, j'utilise le code suivant associé à l'après mise à jour du
| champ en question (suggéré par 3stone): Me.MonChamp.DefaultValue="""" &
| Me.MonChamp & """" '
| Ce code fonctionne parfaitement bien lors de l'ajout de nouveaux
| enregistrements à mon formulaire.
| En revanche, il ne fonctionne plus pour des enregistrements déjà existants
| mais laissés vides.
| Pourriez-vous s'il vous plaît me suggérer le code à utiliser dans ce cas?
Effectivement, pour utiliser la valeur précédente comme valeur "par défaut",
il faut bien une... valeur précédente !
Si tu as des enregistrements qui sont "laissés vides" (?) on peut difficilement
utiliser une valeur par défaut. Quelle serait-elle d'ailleur ?
"Willi2004" | Dans un formulaire, pour le remplissage automatique des enregistrements | successifs d'un champ en utilisant la valeur entrée dans le premier de ces | enregistrements, j'utilise le code suivant associé à l'après mise à jour du | champ en question (suggéré par 3stone): Me.MonChamp.DefaultValue="""" & | Me.MonChamp & """" ' | Ce code fonctionne parfaitement bien lors de l'ajout de nouveaux | enregistrements à mon formulaire. | En revanche, il ne fonctionne plus pour des enregistrements déjà existants | mais laissés vides. | Pourriez-vous s'il vous plaît me suggérer le code à utiliser dans ce cas?
Effectivement, pour utiliser la valeur précédente comme valeur "par défaut", il faut bien une... valeur précédente ! Si tu as des enregistrements qui sont "laissés vides" (?) on peut difficilement utiliser une valeur par défaut. Quelle serait-elle d'ailleur ?
"Willi2004" | Supposons que dans mon formulaire fondé sur une table, j'ai deux champs: | "Note" et "Nom". | Dans le champs "Nom", j'ai 10 enregistrements que je nommerai:Nom1, Nom2, | ..., Nom10. | Dans le champs "Note", je laisse au départ vides tous les dix enregistrements. | | Par la suite,à la reouverture du formulaire,en tapant dans le premier | enregistrement du champs "Note" le nombre 10 par exemple, je voudrais ne plus | avoir à reprendre cette valeur pour les neuf enregistrements suivants, la | Note 10 s'affichant alors automatiquement, ce qui n'est pas le cas avec le | code ci-dessus. | | Ce code ne marche que lors de l'ajout de nouveaux enregistrements, c'est-à | dire à partir du onzième.
Arrivé dans le champ des enregistrements suivants, tu tape Ctrl + apostrophe
"Willi2004"
| Supposons que dans mon formulaire fondé sur une table, j'ai deux champs:
| "Note" et "Nom".
| Dans le champs "Nom", j'ai 10 enregistrements que je nommerai:Nom1, Nom2,
| ..., Nom10.
| Dans le champs "Note", je laisse au départ vides tous les dix enregistrements.
|
| Par la suite,à la reouverture du formulaire,en tapant dans le premier
| enregistrement du champs "Note" le nombre 10 par exemple, je voudrais ne plus
| avoir à reprendre cette valeur pour les neuf enregistrements suivants, la
| Note 10 s'affichant alors automatiquement, ce qui n'est pas le cas avec le
| code ci-dessus.
|
| Ce code ne marche que lors de l'ajout de nouveaux enregistrements, c'est-à
| dire à partir du onzième.
Arrivé dans le champ des enregistrements suivants, tu tape Ctrl + apostrophe
"Willi2004" | Supposons que dans mon formulaire fondé sur une table, j'ai deux champs: | "Note" et "Nom". | Dans le champs "Nom", j'ai 10 enregistrements que je nommerai:Nom1, Nom2, | ..., Nom10. | Dans le champs "Note", je laisse au départ vides tous les dix enregistrements. | | Par la suite,à la reouverture du formulaire,en tapant dans le premier | enregistrement du champs "Note" le nombre 10 par exemple, je voudrais ne plus | avoir à reprendre cette valeur pour les neuf enregistrements suivants, la | Note 10 s'affichant alors automatiquement, ce qui n'est pas le cas avec le | code ci-dessus. | | Ce code ne marche que lors de l'ajout de nouveaux enregistrements, c'est-à | dire à partir du onzième.
Arrivé dans le champ des enregistrements suivants, tu tape Ctrl + apostrophe
En effet si aucun code ne permet d'automatiser cette tache, ce qui aurait été de loin préférable, je me contenterai du Ctrl +apostrophe. Merci encore 3stone.
En effet si aucun code ne permet d'automatiser cette tache, ce qui aurait été
de loin préférable, je me contenterai du Ctrl +apostrophe.
Merci encore 3stone.
En effet si aucun code ne permet d'automatiser cette tache, ce qui aurait été de loin préférable, je me contenterai du Ctrl +apostrophe. Merci encore 3stone.
3stone
Salut,
"Willi2004" | En effet si aucun code ne permet d'automatiser cette tache,
si...
| ce qui aurait été de loin préférable,
faux... Il faudrait alors créer un événement "volontaire" comme un clic sur bouton, et donc quitter le clavier, cliquer, revenir au clavier... ;-(
ou faire une usine à gaz pour si peu...
- après mise à jour du textbox, placer la valeur dans un variant - sur entrée dans ce même textbox : - si vide - attribuer la valeur - si pas vide - ne rien faire
| je me contenterai du Ctrl +apostrophe.
c'est utiliser ce Access donne à l'utilisateur *sans rien coder*
Ceci dit, lorsque l'on sait écrire du code, on peut bricoler ce que l'on veut! A défaut de comprendre ce que l'on écrit, il est plus prudent d'utiliser les moyens du bord, car sinon, comment maintenir une application que l'on ne "comprend pas" ?
"Willi2004"
| En effet si aucun code ne permet d'automatiser cette tache,
si...
| ce qui aurait été de loin préférable,
faux...
Il faudrait alors créer un événement "volontaire" comme un clic sur bouton,
et donc quitter le clavier, cliquer, revenir au clavier... ;-(
ou faire une usine à gaz pour si peu...
- après mise à jour du textbox, placer la valeur dans un variant
- sur entrée dans ce même textbox :
- si vide - attribuer la valeur
- si pas vide - ne rien faire
| je me contenterai du Ctrl +apostrophe.
c'est utiliser ce Access donne à l'utilisateur *sans rien coder*
Ceci dit, lorsque l'on sait écrire du code, on peut bricoler ce que l'on veut!
A défaut de comprendre ce que l'on écrit, il est plus prudent d'utiliser
les moyens du bord, car sinon, comment maintenir une application
que l'on ne "comprend pas" ?
"Willi2004" | En effet si aucun code ne permet d'automatiser cette tache,
si...
| ce qui aurait été de loin préférable,
faux... Il faudrait alors créer un événement "volontaire" comme un clic sur bouton, et donc quitter le clavier, cliquer, revenir au clavier... ;-(
ou faire une usine à gaz pour si peu...
- après mise à jour du textbox, placer la valeur dans un variant - sur entrée dans ce même textbox : - si vide - attribuer la valeur - si pas vide - ne rien faire
| je me contenterai du Ctrl +apostrophe.
c'est utiliser ce Access donne à l'utilisateur *sans rien coder*
Ceci dit, lorsque l'on sait écrire du code, on peut bricoler ce que l'on veut! A défaut de comprendre ce que l'on écrit, il est plus prudent d'utiliser les moyens du bord, car sinon, comment maintenir une application que l'on ne "comprend pas" ?
"Willi2004" | J'ai essayé de la manière suivante, selon ta suggestion: | | - après mise à jour du textbox, placer la valeur dans un variant | - sur entrée dans ce même textbox : | - si vide - attribuer la valeur | - si pas vide - ne rien faire
Dans la partie déclaration, tu mets :
Option Compare Database Option Explicit
Dim TextBoxDefault As Variant
ensuite, sur après mise à jour du textbox concerné :
TextBoxDefault = txtNomDuTextBox
puis, sur réception du focus de ce même textbox :
If IsNull(txtNomDuChamp) Then txtNomDuTextBox = TextBoxDefault End If
Remarque que je parle bien du TextBox dont je préfixe toujours le nom par "txt" pour qu'il ne porte pas le même nom que le champ. Cela évite les disfonctionnements, mais surtout te fait comprendre qu'au lieu du champ (qui est la source de textbox) c'est bien au textbox que tu dois t'adresser !
Pour l'exemple, si tu as un champ "NomClient" tu modifie le nom de la zone de texte en txtNomClient. Malheureusement, par défaut, Access donne au textbox le même nom qu'au champ - ce qui noye les problèmes pour les débutants.
"Willi2004"
| J'ai essayé de la manière suivante, selon ta suggestion:
|
| - après mise à jour du textbox, placer la valeur dans un variant
| - sur entrée dans ce même textbox :
| - si vide - attribuer la valeur
| - si pas vide - ne rien faire
Dans la partie déclaration, tu mets :
Option Compare Database
Option Explicit
Dim TextBoxDefault As Variant
ensuite, sur après mise à jour du textbox concerné :
TextBoxDefault = txtNomDuTextBox
puis, sur réception du focus de ce même textbox :
If IsNull(txtNomDuChamp) Then
txtNomDuTextBox = TextBoxDefault
End If
Remarque que je parle bien du TextBox dont je préfixe toujours
le nom par "txt" pour qu'il ne porte pas le même nom que le champ.
Cela évite les disfonctionnements, mais surtout te fait comprendre
qu'au lieu du champ (qui est la source de textbox) c'est bien
au textbox que tu dois t'adresser !
Pour l'exemple, si tu as un champ "NomClient" tu modifie le nom
de la zone de texte en txtNomClient.
Malheureusement, par défaut, Access donne au textbox le même
nom qu'au champ - ce qui noye les problèmes pour les débutants.
"Willi2004" | J'ai essayé de la manière suivante, selon ta suggestion: | | - après mise à jour du textbox, placer la valeur dans un variant | - sur entrée dans ce même textbox : | - si vide - attribuer la valeur | - si pas vide - ne rien faire
Dans la partie déclaration, tu mets :
Option Compare Database Option Explicit
Dim TextBoxDefault As Variant
ensuite, sur après mise à jour du textbox concerné :
TextBoxDefault = txtNomDuTextBox
puis, sur réception du focus de ce même textbox :
If IsNull(txtNomDuChamp) Then txtNomDuTextBox = TextBoxDefault End If
Remarque que je parle bien du TextBox dont je préfixe toujours le nom par "txt" pour qu'il ne porte pas le même nom que le champ. Cela évite les disfonctionnements, mais surtout te fait comprendre qu'au lieu du champ (qui est la source de textbox) c'est bien au textbox que tu dois t'adresser !
Pour l'exemple, si tu as un champ "NomClient" tu modifie le nom de la zone de texte en txtNomClient. Malheureusement, par défaut, Access donne au textbox le même nom qu'au champ - ce qui noye les problèmes pour les débutants.
Tu ne cesseras jamais de m'étonner et quoi que tu dises, je ne rois pas surfaire ta réputation en disant que tu es fort en Access. J'ai réellement appris de toi et je t'en remercie infiniment.
Mai oui, ça marche!!
Tu ne cesseras jamais de m'étonner et quoi que tu dises, je ne rois pas
surfaire ta réputation en disant que tu es fort en Access.
J'ai réellement appris de toi et je t'en remercie infiniment.
Tu ne cesseras jamais de m'étonner et quoi que tu dises, je ne rois pas surfaire ta réputation en disant que tu es fort en Access. J'ai réellement appris de toi et je t'en remercie infiniment.