pitipilot
Messages postés112Date d'inscriptionmercredi 19 mai 2010StatutMembreDernière intervention14 mai 2021
-
13 mai 2011 à 09:51
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
13 mai 2011 à 11:02
Bonjour je suis actuellement en train de développer une application via RSVIEW SE (logiciel de supervision des systemes automatisés). Ce logiciel permet d'associer un code VBA à des objets.
Private Sub Button10_Released()
Dim sParametre, sNum_OF As String
Dim oGroup As TagGroup
Dim oTag As Tag
Dim vValue As Variant
Dim sMa_Chaine As String
Dim Value As Variant
Dim TimeStamp As Date
Dim Quality As tagQualityConstants
Dim SubStatus As tagSubStatusConstants
Dim Limit As tagLimitConstants
Dim sMessage, sNom_Appli As String
Dim Date_Jour As String
Dim Heure_Jour As String
Date_Jour = Date
Heure_Jour = Time
' Permet de récupérer le parametre envoyé a l'écran générique ex: B76\G88000\VANNES\VP08185
sParametre = Me.Parent.ActiveDisplay.TagParameters.Item(1)
'MsgBox "Parametre =" & sParametre, vbInformation
On Error Resume Next
Err.Clear
'Acces a la base de donnée
If oGroup Is Nothing Then
Set oGroup = Application.CreateTagGroup(Me.AreaName, 500)
If Err.Number Then
LogDiagnosticsMessage "Error creating TagGroup. Error: " & Err.Description, ftDiagSeverityError
Exit Sub
End If
'Attention recuperer le Numero OF
sNum_OF = Mid(sParametre, 1, 11) & "NUM_LOT\NUM_OF"
oGroup.Add sNum_OF
oGroup.Active = True
End If
If Not oGroup Is Nothing Then
'Lecture du Numero OF
Set oTag = oGroup.Item(1)
Err.Clear
oTag.GetTagData vValue, TimeStamp, Quality, SubStatus, Limit, True
'On recupére le Num OF en chaine
sMa_Chaine = CStr(vValue)
'Envoie d'un message
sMon_Message = "AUDITTRAIL, date= " & Date_Jour & " ,heure= " & Heure_Jour & " ,message num lot = " & vValue & " & sParametre)"
Me.Application.LogDiagnosticsMessage (sMon_Message)
' Gestion Erreur
Select Case Err.Number
Case tagErrorReadValue:
MsgBox "Error to reading tag value. Error: " & oTag.LastErrorString
Case tagErrorOperationFailed:
MsgBox "Failed to read from tag. Error: " & Err.Description
End Select
End If
oGroup.RemoveAll
End Sub
La ligne en rouge pose problème, j'obtiens ce message d'erreur : "Runtime error 5 Invalid procedure call or argument".
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 mai 2011 à 11:02
Salut
VBA n'est que le langage associé aux logiciels de Office et à certaines applications professionnelles comme RsView.
RsView possède des déclarations d'objet propres à son environnement et nous ne les connaissons pas.
Impossible donc de te dire où est le problème.
Pour une erreur du type "Invalid procedure call or argument", il faut se poser les questions suivantes :
Me est-il reconnu ? (il peut ne pas l'être dans un module par exemple)
Me possède t-il un Parent ?
Le Parent possède t-il une propriété ActiveDisplay ?
ActiveDisplay possède t-il une collection TagParameters ?
Existe t-il un Item d'index 1 dans la collection TagParameters ?
TagParameters.Item(1) est-il sensé renvoyer un String ?
Tu trouveras l'arborescence de tous ces objets et la définition de leurs paramètres dans l'explorateur d'objets = touche F2
Pour info :
Dim sParametre, sNum_OF As String
ne veut pas dire que sParametre et sNum_OF seront de type String.
Seul sNum_OF le sera.
sParametre sera de type Variant
Pour une déclaration propre, il faut répéter le type de chaque variable
Dim sParametre As String, sNum_OF As String
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)