Création de controles et d'évenements dynamiques sous Access 97

Création de controles et d'évenements dynamiques sous Access 97 - VB/VBA/VBS - Programmation

Marsh Posté le 15-04-2005 à 15:15:55    

bonjour,
 
je dois réaliser un formulaire dans lequel des controles dynamiques doivent s'afficher.
Pour cela j'utilise la fonction CreateControl()
 
Mais je dois également ajouter un évènement, en cas de click, sur ce controle.  
 
Je reussi bien a créer ce les controles (de type zone de liste), mais a l'execution, VBA me renvoi ce message d'erreur :
 
"gestionnaire d'evenement non valide" (Err = 57017)  
 
pouvez vous m'aider car je pense avoir tout essayé, en vain. Merci
 
voici mon code (L'erreur se produit sur la ligne ou il y a la methode "CreateEventProc" ) :
 

Code :
  1. Dim CtrlEntCbLb As Control
  2. Dim mdlEvent As Module
  3. Dim lCreEvent As Long
  4. Dim FrmIliv As Form
  5. Set FrmIliv = Forms("Frm_suivi_ILiv_Analyse croisée_v2" )
  6. Set CtrlEntCbLb = CreateControl(FrmIliv.Name, acTextBox, acDetail, "", "" )
  7. CtrlEntCbLb.Name = "Codelabo"
  8. CtrlEntCbLb.Left = 1100
  9. CtrlEntCbLb.Top = 57
  10. CtrlEntCbLb.Width = 1035
  11. CtrlEntCbLb.Height = 255
  12. CtrlEntCbLb.BackColor = 55769
  13. CtrlEntCbLb.BackStyle = 1
  14. CtrlEntCbLb.ForeColor = 0
  15. CtrlEntCbLb.FontWeight = 700
  16. CtrlEntCbLb.FontSize = 9
  17. CtrlEntCbLb.FontName = "Arial"
  18. CtrlEntCbLb.BorderStyle = 1
  19. CtrlEntCbLb.SpecialEffect = 0
  20. CtrlEntCbLb.InSelection = 0
  21. CtrlEntCbLb.FontItalic = 0
  22. CtrlEntCbLb.TextAlign = 2
  23. CtrlEntCbLb.Visible = True
  24. CtrlEntCbLb.Locked = True
  25. CtrlEntCbLb.ControlSource = "CodeLabo"
  26. Set mdlEvent = FrmIliv.Module
  27. lCreEvent = mdlEvent.CreateEventProc("Click", CtrlEntCbLb.Name)


Message édité par fredoh3 le 15-04-2005 à 15:19:39
Reply

Marsh Posté le 15-04-2005 à 15:15:55   

Reply

Marsh Posté le 18-04-2005 à 21:15:53    

j'ai finallement trouvé la cause dysfonctionnement, dans le code suivant :
 

Code :
  1. CtrlEntCbLb.Name = "Codelabo-" & iPos


 
le signe - (signe moins) ne plaisait pas trop a access.
 
J'ai mis un _ (underscore) a la place et cela fonctionne beaucoup mieux.
 
Access pensait peut etre qu'il fallait effectuer une soustraction a ce niveau la :
 

Code :
  1. lCreEvent = mdlEvent.CreateEventProc("Clic", CtrlEntCbLb.Name)


 
enfin voila, que de temps perdu pour un contenu de variable non conforme.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed