LabVIEWForum.de
ActiveX GetObject() von MS Access umsetzen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: ActiveX GetObject() von MS Access umsetzen (/Thread-ActiveX-GetObject-von-MS-Access-umsetzen)



ActiveX GetObject() von MS Access umsetzen - phil.d - 24.10.2013 14:26

Hallo,

ich bin neu hier im Forum und habe folgendes Problem (VIs im Anhang).

Ich habe 2 PCs, ein PC hat die Vollversion von Access, der andere PC nur die Runtime (True/False in meinem VI).
Ich möchte über ActiveX einfach einen Report drucken.
Der True Case (Access Vollversion) funktioniert ohne Probleme, alle Methoden und Properties sind verfügbar.

Bei der Runtime-Variante funktioniert garnichts da das Refnum zur ActiveX Klasse "Access.ApplicationRuntime" null ist.
Die Lösung dafür habe ich hier gefunden:
http://support.microsoft.com/kb/210132/en-us
--> Abschnitt: Run-Time Version of Microsoft Access
--> Punkt 4.

Zusammenfassend steht dort, dass man einfach per Shell die Accessdatei startet und danach per
GetObject() Methode auf alle Access Methoden und Properties zugreifen kann.
In dem Link ist das so dargestellt: Set objAccess = GetObject(strDBName)

Ich habe keine Ahnung wie ich diese Code Zeile in LabVIEW umsetzen kann.
Wie kann ich die GetObject() Methode auf meine Access Datei umsetzen?

Programmiert ist es in lv12_img, ich kann es aber auch runter konvertieren.
OS: Windows7 32bit

Im NI Forum habe ich es auch schon gepostet: http://forums.ni.com/t5/LabVIEW/MS-Access-Runtime-Activex-Object/td-p/2600495

Danke,
philipp


RE: ActiveX GetObject() von MS Access umsetzen - phil.d - 25.10.2013 10:08

Ich habe das Problem gelöst - jedoch anders als erwartet.

Ich habe mir ein VBScript im texteditor erstellt accessReport.vbs, übergebe die Pfade
zur Accessdatei als Argumente und rufe dann im LabVIEW das Ganze über das System Exec.vi auf:

WScript.exe accessReport.vbs Pfad1 Pfad2 Pfad3

accessReport.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run(WScript.Arguments(1))
Set objAccess = GetObject(WScript.Arguments(1))
objAccess.DoCmd.OpenReport(WScript.Arguments(2))
objAccess.Quit acExit


Falls jemand doch noch eine reine LabVIEW Lösung hat, bin ich gespannt.

Grüße