Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créer control image par VBA

18 réponses
Avatar
Christophe CAMPAIN
Bonjour à tous,

Je cherche à créer un control image par VBA.

Private Sub Commande31_Click()
Dim CtlImg As Control
Set CtlImg = CreateControl(Form_Formulaire1, acImage, , , , 200, 50, 100,
100)
End Sub

Ca me renvoi un erreur "incompatibilité de type" avec CreateControl
surligné.

Pourquoi ?

Par avance merci
Kritof

10 réponses

1 2
Avatar
Raymond [mvp]
Bonsoir.

il te manque des éléments.
CreateControl ne peut fonctionner que si le formulaire est chargé et en mode
design.
CreateControl ne demande pas l'objet formulaire mais le nom du formulaire.
tu peux faire ceci:

DoCmd.OpenForm "formulaire2", acDesign
Dim CtlImg As Control
Set CtlImg = CreateControl("Formulaire2", acImage, , , , 200, 50, 1000,
1000)
DoCmd.Close acForm, "formulaire2", acSaveYes

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


"Christophe CAMPAIN" a écrit
dans le message de news:
Bonjour à tous,

Je cherche à créer un control image par VBA.

Private Sub Commande31_Click()
Dim CtlImg As Control
Set CtlImg = CreateControl(Form_Formulaire1, acImage, , , , 200, 50, 100,
100)
End Sub

Ca me renvoi un erreur "incompatibilité de type" avec CreateControl
surligné.

Pourquoi ?

Par avance merci
Kritof




Avatar
Christophe CAMPAIN
Bonjour Raymond,

Je viens d'essayer d'appliquer ta méthode, mais chez moi ça génère une
erreur:
"Erreur d'exécution '29054': Microsoft Access ne peut pas ajouter, renommer
ou supprimer le(s) contrôle(s) sélectionné(s)."

J'ai essayer diverses parties de mon formulaire, mais rien n'y fait .... Une
idée ?

@+
Kristof

"Raymond [mvp]" a écrit dans le message de
news:
Bonsoir.

il te manque des éléments.
CreateControl ne peut fonctionner que si le formulaire est chargé et en
mode

design.
CreateControl ne demande pas l'objet formulaire mais le nom du formulaire.
tu peux faire ceci:

DoCmd.OpenForm "formulaire2", acDesign
Dim CtlImg As Control
Set CtlImg = CreateControl("Formulaire2", acImage, , , , 200, 50, 1000,
1000)
DoCmd.Close acForm, "formulaire2", acSaveYes

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


"Christophe CAMPAIN" a écrit
dans le message de news:
Bonjour à tous,

Je cherche à créer un control image par VBA.

Private Sub Commande31_Click()
Dim CtlImg As Control
Set CtlImg = CreateControl(Form_Formulaire1, acImage, , , , 200, 50,
100,


100)
End Sub

Ca me renvoi un erreur "incompatibilité de type" avec CreateControl
surligné.

Pourquoi ?

Par avance merci
Kritof








Avatar
Raymond [mvp]
Bonjour.

je viens de retester même en 97 , ça fonctionne bien . n'aurais-tu pas une
erreur de compil ? as tu bien mis ces deux lignes sur la même ?
Set CtlImg = CreateControl("Formulaire2", acImage, , , , 200, 50, 1000,
1000)

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


"Christophe CAMPAIN" a écrit
dans le message de news:
Bonjour Raymond,

Je viens d'essayer d'appliquer ta méthode, mais chez moi ça génère une
erreur:
"Erreur d'exécution '29054': Microsoft Access ne peut pas ajouter,
renommer

ou supprimer le(s) contrôle(s) sélectionné(s)."

J'ai essayer diverses parties de mon formulaire, mais rien n'y fait ....
Une

idée ?

@+
Kristof


Avatar
Christophe CAMPAIN
Raymond,

Le debogueur m'avait averti de tout mettre sur la même ligne.
Je viens de retester sur une base de données vierge, nouveau formulaire,
nouveau bouton

Private Sub Commande0_Click()
DoCmd.OpenForm "formulaire1", acDesign
Dim CtlImg As Control
Set CtlImg = CreateControl("Formulaire1", acImage, , , , 200, 50, 1000,
1000)
DoCmd.Close acForm, "formulaire1", acSaveYes

End Sub

Mais toujours la même erreur "Erreur d'exécution '29054': Microsoft Access
ne peut pas ajouter, renommer ou supprimer le(s) contrôle(s)
sélectionné(s)."

Ne faut il pas faire référence à une biliothèque spécifique pour créer ces
objets en VBA ?

Dans mon projet j'ai :
Visual Basic For Applications,
Microsoft Access 9.0 Object Library
Microsoft ActiveX Data Objects 2.1 Library
OLE Automation
Microsoft Forms 2.0 Object Library
Microsoft Windows Cmmon Controls 6.0 (SP3)

@+
Kristof

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

je viens de retester même en 97 , ça fonctionne bien . n'aurais-tu pas une
erreur de compil ? as tu bien mis ces deux lignes sur la même ?
Set CtlImg = CreateControl("Formulaire2", acImage, , , , 200, 50, 1000,
1000)

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


"Christophe CAMPAIN" a écrit
dans le message de news:
Bonjour Raymond,

Je viens d'essayer d'appliquer ta méthode, mais chez moi ça génère une
erreur:
"Erreur d'exécution '29054': Microsoft Access ne peut pas ajouter,
renommer

ou supprimer le(s) contrôle(s) sélectionné(s)."

J'ai essayer diverses parties de mon formulaire, mais rien n'y fait ....
Une

idée ?

@+
Kristof






Avatar
Raymond [mvp]
Au lieu de ado (activex data object) coche DAO3.6

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


"Christophe CAMPAIN" a écrit
dans le message de news:
Raymond,

Le debogueur m'avait averti de tout mettre sur la même ligne.
Je viens de retester sur une base de données vierge, nouveau formulaire,
nouveau bouton

Private Sub Commande0_Click()
DoCmd.OpenForm "formulaire1", acDesign
Dim CtlImg As Control
Set CtlImg = CreateControl("Formulaire1", acImage, , , , 200, 50, 1000,
1000)
DoCmd.Close acForm, "formulaire1", acSaveYes

End Sub

Mais toujours la même erreur "Erreur d'exécution '29054': Microsoft Access
ne peut pas ajouter, renommer ou supprimer le(s) contrôle(s)
sélectionné(s)."

Ne faut il pas faire référence à une biliothèque spécifique pour créer ces
objets en VBA ?

Dans mon projet j'ai :
Visual Basic For Applications,
Microsoft Access 9.0 Object Library
Microsoft ActiveX Data Objects 2.1 Library
OLE Automation
Microsoft Forms 2.0 Object Library
Microsoft Windows Cmmon Controls 6.0 (SP3)

@+
Kristof


Avatar
Christophe CAMPAIN
Raymond,

J'ai fais les changements, mais ça ne change rien, j'ai toujours le même
message d'erreur...

@+
Kristof


"Raymond [mvp]" a écrit dans le message de
news:
Au lieu de ado (activex data object) coche DAO3.6

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


"Christophe CAMPAIN" a écrit
dans le message de news:
Raymond,

Le debogueur m'avait averti de tout mettre sur la même ligne.
Je viens de retester sur une base de données vierge, nouveau formulaire,
nouveau bouton

Private Sub Commande0_Click()
DoCmd.OpenForm "formulaire1", acDesign
Dim CtlImg As Control
Set CtlImg = CreateControl("Formulaire1", acImage, , , , 200, 50, 1000,
1000)
DoCmd.Close acForm, "formulaire1", acSaveYes

End Sub

Mais toujours la même erreur "Erreur d'exécution '29054': Microsoft
Access


ne peut pas ajouter, renommer ou supprimer le(s) contrôle(s)
sélectionné(s)."

Ne faut il pas faire référence à une biliothèque spécifique pour créer
ces


objets en VBA ?

Dans mon projet j'ai :
Visual Basic For Applications,
Microsoft Access 9.0 Object Library
Microsoft ActiveX Data Objects 2.1 Library
OLE Automation
Microsoft Forms 2.0 Object Library
Microsoft Windows Cmmon Controls 6.0 (SP3)

@+
Kristof






Avatar
Raymond [mvp]
Peux-tu me passer ton formulaire avec le minimum de ce qui va autour ? en
zip ou rar obligatoire, enlève le XYZ. dans l'adresse. on ne va pas se
laisser emm.. par une image !

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


"Christophe CAMPAIN" a écrit
dans le message de news:%
Raymond,

J'ai fais les changements, mais ça ne change rien, j'ai toujours le même
message d'erreur...

@+
Kristof


Avatar
Christophe CAMPAIN
Ok,
je te prépare ça TDS...

@+
Kristof

"Raymond [mvp]" a écrit dans le message de
news:%
Peux-tu me passer ton formulaire avec le minimum de ce qui va autour ? en
zip ou rar obligatoire, enlève le XYZ. dans l'adresse. on ne va pas se
laisser emm.. par une image !

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


"Christophe CAMPAIN" a écrit
dans le message de news:%
Raymond,

J'ai fais les changements, mais ça ne change rien, j'ai toujours le même
message d'erreur...

@+
Kristof






Avatar
Raymond [mvp]
tu ne peux pas créer un controle dans ton propre formulaire car il faut le
mettre en design. il faut le faire à partir d'un autre formulaire.

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


"Christophe CAMPAIN" a écrit
dans le message de news:O1kmu$
Ok,
je te prépare ça TDS...

@+
Kristof


Avatar
Christophe CAMPAIN
Ok ça marche !!!

Merci pour ton aide précieuse.

Pendant que j'y suis, connais tu une fonction Access Similaire au "rognage"
des photos avec poignée dans les appli Office (Word / Excel) ?
Sous Excel par exemple :
Selection.ShapeRange.PictureFormat.CropRight = 72#
Selection.ShapeRange.PictureFormat.CropTop = 123#


@+
Kristof

"Raymond [mvp]" a écrit dans le message de
news:
tu ne peux pas créer un controle dans ton propre formulaire car il faut le
mettre en design. il faut le faire à partir d'un autre formulaire.

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


"Christophe CAMPAIN" a écrit
dans le message de news:O1kmu$
Ok,
je te prépare ça TDS...

@+
Kristof






1 2