LabVIEWForum.de
VBA-Code in LV "umwandeln" - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: VBA-Code in LV "umwandeln" (/Thread-VBA-Code-in-LV-umwandeln)

Seiten: 1 2


VBA-Code in LV "umwandeln" - SonnenWeiß - 19.08.2006 19:35

Hallo,

ich verspreche auch, dass ich LV noch gleich "richtig" lerne! Aber so gern würd ich mal ausprobieren wie mein Bsp. von Excel VBA in LV funktioniert. Ich habe versucht es wie unten im Screenshot zu sehen, umzusetzen, aber LV sagt: "Methodenknoten: ...offen ... ungültig...Anschluss".
Was muß ich denn da verbessern? Kann doch nicht mehr so viel sein?

VBA Code
[code]Private Sub CommandButton1_Click()


VBA-Code in LV "umwandeln" - Kvasir - 21.08.2006 09:25

Also ich hab ja keine Ahnung von Excel VBA, aber mit deinem Problem kann ich glaube ich dir helfen.

Du hast bei den Methodenknoten nur den Error weiterverbunden durch alle Knoten. Du musst jedoch auch die Referenz (link oberer Eingang - das Blatt) bei allen verbinden. Beim ersten links hast du das ja getan. Verbinde nun einfach auch alle anderen mit dem grünen Draht der TWS Referenz.


VBA-Code in LV "umwandeln" - SonnenWeiß - 21.08.2006 13:44

' schrieb:Du hast bei den Methodenknoten nur den Error weiterverbunden durch alle Knoten. Du musst jedoch auch die Referenz (link oberer Eingang - das Blatt) bei allen verbinden. Beim ersten links hast du das ja getan. Verbinde nun einfach auch alle anderen mit dem grünen Draht der TWS Referenz.
Stimmt nur Error weiterverbunden...
Aber schau mal, wenn ich mit dem grünen Draht der TWS Referenz dieses tickSize-Tws-Event verbinde, dann verschwindet alle "Funtionalität"! Es heiß dann nur noch Tws und nicht mehr TwsEvents. Ich kann dann auch keine Konstante oder Eingabe mehr an ID, tickType, size dranhängen. Es ist einfach "tot" wenn mit dem grünen Draht verbunden. Der rosa Error-Draht macht nichts.
Auf dem Screenshot hab ich mit den roten Pfeilen das Problem markiert.
[attachment=2989]

PS: Ich hätte activeX als Überschrift nehmen sollen nicht "VBA"!


VBA-Code in LV "umwandeln" - eg - 21.08.2006 14:21

Dann existiert diese Methode für TWS nicht. Wo hast du denn TWS Events her? Ich glaube du musst zuerst aus TWS die Eigenschaft TWS Events auswählen, und dann den Ausgang von TWS Events mit dem nächsten Methodenknoten verbinden.

Gruss


VBA-Code in LV "umwandeln" - Kvasir - 21.08.2006 14:21

Ach auf das habe ich vorher nicht geachtet.
Ich vermute jetzt einfach mal, dass dein Tws Events eine andere Klasse/Bibliothek ist?

In diesem Fall kannst du natürlich nicht auf Tws referenzieren, aber trotzdem Methoden von Events ausführen. Erstell doch einfach eine Referenz zu Events und verbinde diese mit den dazugehörigen Knoten.

Du solltest übrigens auch die Referenzen am Ende wieder schließen mit der "Referenz schließen" Funtion. Nicht geschloßene Referenzen führen schnellmal zu Problemen.

edit: Wieder mal zu langsamSmile


VBA-Code in LV "umwandeln" - SonnenWeiß - 21.08.2006 17:35

Hallo ihr beiden!
Langsam wird mir das klarer.

' schrieb:Ich vermute jetzt einfach mal, dass dein Tws Events eine andere Klasse/Bibliothek ist?
Ja, so sieht es aus.
TWSLib.Tws, davon hab ich die Methoden:
- conncet
- reqMktData

TWSLib.TwsEvents, davon sind die Events :
- tickPrice
- tickSize
' schrieb:In diesem Fall kannst du natürlich nicht auf Tws referenzieren, aber trotzdem Methoden von Events ausführen. Erstell doch einfach eine Referenz zu Events und verbinde diese mit den dazugehörigen Knoten.
Ja, aber dann kann ich diese Events nicht mehr mit Daten versorgen sieht man hier in Bild:
[attachment=2996]
Oder verstehe ich das falsch?
' schrieb:Du solltest übrigens auch die Referenzen am Ende wieder schließen mit der "Referenz schließen" Funtion.
Ist das so richtig, wie im Bild, mit einer Leitung, oder muß ich von jedem Knoten zu "Referenz schließen" verbinden?

PS: In Excel ist das TWS ActiveX Control für den Anwender eine geschloßene Sache, da hat man nicht mit mehreren "Klassen etc. " von TWS zu tun. Drum ist mir dies hier nicht klar, was da passiert.


VBA-Code in LV "umwandeln" - eg - 21.08.2006 17:49

Kannst du TWSLib.TWSEvents ganz am Anfang mit dem TWS (ActiveX Container) verbinden?


VBA-Code in LV "umwandeln" - SonnenWeiß - 21.08.2006 18:08

' schrieb:Kannst du TWSLib.TWSEvents ganz am Anfang mit dem TWS (ActiveX Container) verbinden?
Nein, dann wechselt es auch zu TWSLib.Tws.
Ah, ist das mein Container, als ich diesen Link gelesen hatte, war meine Frage wo ich so einen Container herbekomme. Dort steht: ...any ActiveX control can be embedded inside LabVIEW and then using that control’s properties and methods,... Aber was ist mit Events und warum sind die bei mir in verscheiedenen Klassen? Hab ich beim "Import" des TWS ActiveX in LabVIEW etwas falsch gemacht?

PS: jetzt lese ich gereade zu einem AcitveX Events Beispiel:
Setup:
To use this example you must register the .ocx file by running the following command from the run command line:
"regsvr32 ..axeventsexample.ocx"
This will give you a message that the .ocx file was registered. Now, you can open the VI and run the program.

Ich habe mein Tws.ocx nicht auf diese Weise registriert, sondern irgendwie über LV "importiert". Ich probier es mal mit "run in command line".


VBA-Code in LV "umwandeln" - eg - 21.08.2006 18:19

Dann sag mir bitte wie du den Knoten TWSLib.TwsEvents erstellt hast.

Gruss

P.S. zu deinem Beispiel. Wenn LV TWS erkannt hat, dann ist es schon im Windows registriert. Also brauchst es nicht zu machen.


VBA-Code in LV "umwandeln" - SonnenWeiß - 21.08.2006 18:23

' schrieb:Dann sag mir bitte wie du den Knoten TWSLib.TwsEvents erstellt hast.
Wie im Bild von Beitrag Nr.3, über den Klassenbrowser.
http://www.LabVIEWforum.de/index.p...st&id=28973

Und so hab ich das Tws Control zu LV hinzugefügt:
[attachment=2997]