OVH Cloud OVH Cloud

pour Raymond

3 réponses
Avatar
yann
bonjour Raymond
pourrait tu m'expliquer comment faire pour que dans une form ou jais 250
controles independants et sur lequelle je doie executer le code suivant .

Private Sub image1_Click()
Dim stDocName As String
b = Me.champ1
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub


Private Sub image2_Click()
Dim stDocName As String
b = Me.champ2
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub

ETC ............

Donc je voudrais le remplacer par un procedure commune qui m'evitera d'ecrie
autant de sub que de controls.
Merci.

3 réponses

Avatar
Raymond [mvp]
D'abord quelques précisions:
Champ1 c'est quoi ?
b sert à quoi ?
r c'est ok c'est le nom de l'image.

sinon,
quand on a 250 contrôles de cadre indépendant ( pas d'image), dans
l'événement clic de chacun on place le nom d'une fonction public à exécuter.
par exemple: =Lance_Form()
la fonction (la mettre dans un module) lancera un formulaire unique qui
recevra le nom de l'image (donc du document et du contrôle) dans OpenArgs,
comme ceci:
Public Function Lance_Form()
DoCmd.OpenForm "formulaire1", , , , , , Screen.ActiveControl.Name
End Function
lors de l'ouverture de formulaire1, il faudra récupérer le nom du document
comme ceci:
Nomdoc = Me.OpenArgs
dans ton formulaire tu auras donc dans Nomdoc le nom du contrôle, le nom de
l'image qui servira à récupérer les autres éléments dans tes autres requêtes
ou tables.
pour placer le nom de la fonction dans chaque contrôle, on sélectionne tous
les contrôels à la fois et on entre la fonction sur la ligne.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b6e485$0$7698$
bonjour Raymond
pourrait tu m'expliquer comment faire pour que dans une form ou jais 250
controles independants et sur lequelle je doie executer le code suivant .

Private Sub image1_Click()
Dim stDocName As String
b = Me.champ1
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub


Private Sub image2_Click()
Dim stDocName As String
b = Me.champ2
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub

ETC ............

Donc je voudrais le remplacer par un procedure commune qui m'evitera
d'ecrie

autant de sub que de controls.
Merci.




Avatar
yann
RE

Champ1 et la valeur string du noms de la photo de ma plaquette.
b = Champ1
la clef de recherhce et egale a la valeur de b - l'identificateur de la
photo (01.jpg)
en fait la clef principale de la table principale et 1 numero unique (pas
automatique) qui s'approche du mon de la premiere photo .
donc je peut faire
b = me.champ1 ' le noms de la photo
A = b ' une variable
r = Replace(A, "01.jpg", " ") ' la clef de recherche

"Raymond [mvp]" a écrit dans le message de
news:Os$
D'abord quelques précisions:
Champ1 c'est quoi ?
b sert à quoi ?
r c'est ok c'est le nom de l'image.

sinon,
quand on a 250 contrôles de cadre indépendant ( pas d'image), dans
l'événement clic de chacun on place le nom d'une fonction public à
exécuter.

par exemple: =Lance_Form()
la fonction (la mettre dans un module) lancera un formulaire unique qui
recevra le nom de l'image (donc du document et du contrôle) dans OpenArgs,
comme ceci:
Public Function Lance_Form()
DoCmd.OpenForm "formulaire1", , , , , , Screen.ActiveControl.Name
End Function
lors de l'ouverture de formulaire1, il faudra récupérer le nom du document
comme ceci:
Nomdoc = Me.OpenArgs
dans ton formulaire tu auras donc dans Nomdoc le nom du contrôle, le nom
de

l'image qui servira à récupérer les autres éléments dans tes autres
requêtes

ou tables.
pour placer le nom de la fonction dans chaque contrôle, on sélectionne
tous

les contrôels à la fois et on entre la fonction sur la ligne.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b6e485$0$7698$
bonjour Raymond
pourrait tu m'expliquer comment faire pour que dans une form ou jais 250
controles independants et sur lequelle je doie executer le code suivant
.



Private Sub image1_Click()
Dim stDocName As String
b = Me.champ1
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub


Private Sub image2_Click()
Dim stDocName As String
b = Me.champ2
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub

ETC ............

Donc je voudrais le remplacer par un procedure commune qui m'evitera
d'ecrie

autant de sub que de controls.
Merci.








Avatar
Raymond [mvp]
regarde comme je viens de t'indiquer avec la fonction public

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b6f489$0$7701$
RE

Champ1 et la valeur string du noms de la photo de ma plaquette.
b = Champ1
la clef de recherhce et egale a la valeur de b - l'identificateur de la
photo (01.jpg)
en fait la clef principale de la table principale et 1 numero unique (pas
automatique) qui s'approche du mon de la premiere photo .
donc je peut faire
b = me.champ1 ' le noms de la photo
A = b ' une variable
r = Replace(A, "01.jpg", " ") ' la clef de recherche

"Raymond [mvp]" a écrit dans le message de
news:Os$
D'abord quelques précisions:
Champ1 c'est quoi ?
b sert à quoi ?
r c'est ok c'est le nom de l'image.

sinon,
quand on a 250 contrôles de cadre indépendant ( pas d'image), dans
l'événement clic de chacun on place le nom d'une fonction public à
exécuter.

par exemple: =Lance_Form()
la fonction (la mettre dans un module) lancera un formulaire unique qui
recevra le nom de l'image (donc du document et du contrôle) dans
OpenArgs,


comme ceci:
Public Function Lance_Form()
DoCmd.OpenForm "formulaire1", , , , , , Screen.ActiveControl.Name
End Function
lors de l'ouverture de formulaire1, il faudra récupérer le nom du
document


comme ceci:
Nomdoc = Me.OpenArgs
dans ton formulaire tu auras donc dans Nomdoc le nom du contrôle, le nom
de

l'image qui servira à récupérer les autres éléments dans tes autres
requêtes

ou tables.
pour placer le nom de la fonction dans chaque contrôle, on sélectionne
tous

les contrôels à la fois et on entre la fonction sur la ligne.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"yann" a écrit dans le message de
news:40b6e485$0$7698$
bonjour Raymond
pourrait tu m'expliquer comment faire pour que dans une form ou jais
250



controles independants et sur lequelle je doie executer le code
suivant



.

Private Sub image1_Click()
Dim stDocName As String
b = Me.champ1
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub


Private Sub image2_Click()
Dim stDocName As String
b = Me.champ2
A = b
r = Replace(A, "01.jpg", " ")
stDocName = "visue"
DoCmd.OpenForm stDocName
Form_VISUE.id.Value = r
End Sub

ETC ............

Donc je voudrais le remplacer par un procedure commune qui m'evitera
d'ecrie

autant de sub que de controls.
Merci.