Erreur compil

Résolu
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013
- 5 mars 2008 à 12:02
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013
- 5 mars 2008 à 17:32
Bonjour
j'ai une application utilisant des modules fichiers.bas dans un projet ocx
je veux lorsque j'ai une erreur dans mon .bas appeller une routine de mon ocx afin de faire un raise event

voici mes sources
dans l'ocx:
Public Sub ErrMod(MsgErr As String)
MsgBox MsgErr
End Sub



Private Sub Command1_Click()
testMod (4)
End Sub



dans le module.bas
Public Sub testMod(i As Integer)
On Error GoTo ErrHandler '***** Management error **********
Dim str As String
i = i + 1
i = str
Exit Sub
ErrHandler:
    'Logging
    UserControl1.ErrMod (" No: " + CStr(Err.Number) + " " + Err.Description + "[EffacerSection(" + Section + "," + Nomfic + ")]")
    If Not UnloadOnError Then
        Resume Next
    End If
End Sub




Quelqu'un peut m'aider merci

Jean louis

15 réponses

NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
5 mars 2008 à 16:55
Bonjour

Dans ton module tu déclare une variable globale (endehors de toutes procédure):
Public MonCtl as UserControl1

Ensuite dans l'event de chargement de ton UserControl, tu fais
Set MonModule.MonCtl=Me

Ensuite pour l'event :
MonCtl.ErrMod

Ou sinon tu ajoute un paramètre :
Public sub TestMod(byval i as long,byval MonCtl as UserControl1)

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
3
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
5 mars 2008 à 12:32
Bonjour

C'est du VB6, tu t'es trompé de catégorie ......

Où est ton UserControl ? Si uil est dans une form (je ne vois pas où il pourrais-être sinon), il faut faire :
NomForm.NomCtl

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 14:36
oui c'est du vb6
mon usercontrol est dans mon ocx il n'y pas de form

Jean louis
0
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
5 mars 2008 à 14:59
Bonjour

A ce moment là, il faut que tu prévopi que lors de la création de ton Usercontrol (par l'app utilisatrice) de l'inscrire dans ton module (par une variable Public par exemple).

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 15:15
Jean louis
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 15:38
ah mon msg a m...
je disais que ce n'est pas vraiment ce que je veux


je peux t'envoyer mes sources se sera plus simple pour comprendre


si tu es ok donne moi une adresse email


merci

Jean louis
0
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
5 mars 2008 à 16:06
Bonjour

Je préferais éviter pour l'instant, car j'ai juste quelques autres question avant :
- est-ce pour décharger le code du UserCotrol que tu as fait ce module ?
- Y-a-t-il posssibilité de multiplicité des instances du control ? (plusieur controles du type UserControl1 en même temps)
- A quoi te sert ton contolre ?
   - A faire un Log ?
   - A être utilisateur du module ?

Sinon concernant le code copié :
Public Sub testMod(i As Integer)
Dim str As String
i = i + 1
i = str

Integer=String ????
Utilises Cint ou Val pour convertir les chaines en entier.
Préfère l'utilisation de Long au lieu de Integer (léger gain de rapidité).
Tu n'initialises pas Str, donc i=0 tt le tmp.

J'attends ta réponse pour voir les solutions possibles.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 16:17
Jean louis
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 16:25
Jean louis
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 16:28
Jean louis
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 16:29
Ca fait 3 fois que je reponds et qu'il m'efface tout
donc je disais
je veux creer une erreur dans mon ocx d'ou la routine
et recuper l'evenement dans mon ecran utilisant l'ocx
dans mon .bas
Public Sub testMod(i As Integer)
On Error GoTo ErrHandler '***** Management error **********
Dim str As String
i = i + 1
i = str
Exit Sub
ErrHandler:
    'Logging
    UserControl1.ErrMod (" No: " + CStr(Err.Number) + " " + Err.Description + "[EffacerSection(" + Section + "," + Nomfic + ")]")
    If Not UnloadOnError Then
        Resume Next
    End If
End Sub

dans .ctl
Public Sub ErrMod(MsgErr As String)
    RaiseEvent ErrorEvt MsgErr
End Sub

Jean louis
0
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
5 mars 2008 à 16:37
Bonjour

Soit tu ajoutes un paramètre contenant le UserControl, afin que ta Sub utilises ce control.
Soit il faut que tu mémorise (dans le module) une référence vers ce UserControl, il n'y a pas d'autres solutions (à moins de voir comment faire avec des Shared, mais ça ne solutionneras pas ton pb je penses).

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 16:43
Jean louis
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 16:43
Je ne comprends pas bien comment ajouter un paramètre à mon usercontrol
ou comment memoriser une reference desole de pose autant de questions

Jean louis
0
johnnous
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

5 mars 2008 à 17:32
merci super

Jean louis
0