![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 9
|
Bonjour,
Dans formulaire1, j'ai des zones de texte appelées nom_1, nom_2, etc. J'ai actuellement le focus sur un autre formulaire, où se trouve une zone de texte nommée compteur contenant un nombre, et une zone de texte nommée nom. Je veux rechercher dans formulaire1 la zone de texte dont le nom se finit par la valeur qui se trouve dans le compteur, et lui attribuer comme valeur le nom stocké dans le formulaire2. Je fais donc ceci : Code :
Dim txt As TextBox For Each txt In Forms!formulaire1 If txt.Name Like "nom_" & Me.compteur.Value Then Set txt.Value = Me.Nom.Value End If Next txt D'où vient l'erreur..? Y aurait-il une autre façon d'effectuer ce que je désire..? Merci Dernière modification par mout1234 ; 01/09/2008 à 14h01 Motif: balises code |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: novembre 2006
Localisation: Paris
Âge: 39
Messages: 1 758
|
Bonjour,
Le set n'a pas lieu d'être ici: il s'agit d'attribuer une valeur à une propriété d'un controle et non affecter un objet à un variable objet... Code :
Dim txt As TextBox For Each txt In Forms!formulaire1 If txt.Name = "nom_" & Me.compteur.Value Then txt.Value = Me.Nom.Value End If Next txt Plus simplement, quelque chose comme ci dessous devrait marcher non? Code :
On error resume next Forms!formulaire1.("Nom_" & Me!Compteur) = Me!Nom
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
|
|
#3 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: juin 2008
Localisation: Toulouse
Messages: 38
|
Pour l'incompatibilité de type il faut écrire :
Code :
For Each txt In Forms!formulaire1.controls Code :
For Each txt In Forms!formulaire1 Cette collection contien tous les objets présents dans le formulaire. |
|
|
|
|
|
#4 (permalink) | |
![]() Date d'inscription: novembre 2006
Localisation: Paris
Âge: 39
Messages: 1 758
|
Citation:
Par contre, tous les contrôles ne sont pas nécessairement des textbox...
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
|
|
|
#5 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 9
|
Merci de vos réponses.
Mais j'ai maintenant l'erreur "Propriété ou méthode non gérée par cet objet." Or il s'agit bien d'un TextBox, donc la ligne : Code :
Forms.[fiche_pointage1].["nom1_" & Me.compteur] = Me.Nom |
|
|
|
|
|
#6 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: juin 2008
Localisation: Toulouse
Messages: 38
|
Nan ca marche pas ca, il faudrait plutôt quelquechose comme :
Code :
Forms.[fiche_pointage1]("nom1_" & Me.compteur).Value = Me.Nom |
|
|
|
|
|
#7 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 9
|
Je ne connais pas les index.
Toujours est-il que la dernière solution que tu m'as proposée ne marche pas, j'ai toujours la même erreur. As-tu une idée d'où cela peut venir..? Y a-t-il una autre façon de remplir dynamiquement des zones de texte..? Merci de ton aide |
|
|
|
|
|
#9 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 9
|
En fait, je fais ceci :
Code :
Dim stDocName As String Dim stLinkCriteria As String stDocName = "formulaire1" DoCmd.OpenForm stDocName, , , stLinkCriteria Forms.[formulaire1]("nom1_" & Me.compteur).Value = Me.Nom Forms!formulaire2.SetFocus DoCmd.Close |
|
|
|
|
|
#13 (permalink) |
![]() Date d'inscription: novembre 2006
Localisation: Paris
Âge: 39
Messages: 1 758
|
Heu, y a pas une confusion là entre la propriété Nom du formulaire et le contrôle Nom?
S'il s'agit bien du champ Nom il faut alors mettre une syntaxe évitant la confusion pour le système: Me.Controls("Nom") ou Me("Nom") devrait fonctionner il me semble. PS: une fois de plus, évitez les noms de champs déjà utilisés par le système (nom, date...) et nommez vos champs de manière plus précise (NomClient, DateCréation,...)
__________________
............................................................................................ Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés. Les FAQs les tutos Les Sources Access Profitez de ces mines d'or... Postez dans le bon sous forum et mentionnez la version |
|
|
|
|
![]() |
![]() |
||
incompatibilité de type --> Access
|
||
| Outils de la discussion | |
|
|