| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| FMB |
Autor
|
Thema: API:Toolboxdatei SWBrowser.mdb öffnen (2693 mal gelesen)
|
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 24. Apr. 2014 15:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, seit 5...6 Jahren benutzen wir zum Überprüfen der Schrauben- und Stiftlängen in der Baugruppe ein Makro, das diese Daten aus der "SWBrowser.mdb" der Toolbox holt. Seit dem gleichzeitigen Wechsel zu Windows7 , zu 64-Bit-Workstation und SWX2013 (Don´t never change a running System!!!!!) funktioniert es nun nicht mehr. Schade um die Arbeit, die im Makro steckt. Schade um die Arbeit für die manuelle Kontrolle. Bei den Verweisen stimmt es so weit. Nur in der Zeile Code: Set db = OpenDatabase(sACCESSDateiName)
bleibt das Makro hängen mit dem "Laufzeitfehler 429..." (s.Bild) Weiß jemand, wie ich jetzt unter Windows7, mit64-Bit-Workstation und SWX2013 an die "SWBrowser.mdb" rankomme? Viele Grüße und Frohes Schaffen Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 25. Apr. 2014 06:41 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas5
Hallo Thomas ich nehme mal an, dass das Makro die "Jet-Engine" oder wie das heißt für den Zugriff auf die Access-DB verwendet. Das Problem ist, nach meiner Suche, dass es angeblich eine Jet-Engine für Win 7 64-bit gibt, die aber nur autom. installiert wird wenn Office 64-bit installiert wird. Und ich weiß nicht ob es recht viele Office 64-bit Installationen gibt. Die 32-bit Jet-Engine läuft nicht unter Win 7 64-bit. siehe dazu auch diverse Artikel im WWW z.B.: http://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine ------------------ Grüße Heinz ------------------ PS falls Du eine Lösung findest, dann wär ich sehr daran interessiert!
[Diese Nachricht wurde von nahe am 25. Apr. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 25. Apr. 2014 10:05 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas5
Hallo zusammen Es gibt eine 64-bit Access Database Engine. Zu finden hier -> http://www.microsoft.com/de-ch/download/details.aspx?id=13255 Falls schon ein 32-bit Office installiert ist, muss ein kleiner Trick angewandt werden um sie zu installieren. Why can't 32 and 64 bit Access Database Engine (ACE/OLEDB Dataproviders) coexist?
Zitat: - Check the 64-bit registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" before installing the 64-bit version of the Microsoft Access Database Engine 2010 redistributable. - If it does not contain the "mso.dll" registry value, then you will need to rename or delete the value after installing the 64-bit version of the Microsoft Access Database Engine 2010 redistributable on a system with a 32-bit version of MS Office installed. - Use the "/passive" command line parameter to install the redistributable, e.g. "C:\directory path\AccessDatabaseEngine_x64.exe" /passive - Delete or rename the "mso.dll" registry value, which contains the path to the 64-bit version of MSO.DLL (and should not be used by 32-bit MS Office versions). - Now you can start a 32-bit MS Office application without the "re-configuring" issue.
Gruss Andreas
------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 26. Apr. 2014 12:40 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank für Eure Antworten. Es scheint wohl nicht ohne Editieren der Windows-Registrierung zu gehen. Leider kann ich das auf keinem nicht-produktiven 64-Bit-Rechner ausprobieren. Also muß ich noch warten, bis ich etwas Luft zum probieren habe, damit ich keine Konstuktionsausfälle habe. Wenn ich´s ausprobiert habe, melde ich mich wieder. Vielen Dank und viele Grüße, Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 15. Mai. 2014 09:51 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich habe alles oben beschriebene ausprobiert und trotzdem funktioniert´s nicht. Dennoch ich habe eine Lösung gefunden. Allerdings muß dabei Access installiert sein. Ich nehme direkt das Access. Code: Set accsess = CreateObject("Access.Application") accsess.Visible = False Set ws = accsess.DBEngine.Workspaces(0) Set db = ws.OpenDatabase(sACCESSDateiName)
Vielen Dank noch mal und viele Grüße Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 15. Mai. 2014 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas5
Hallo Thomas Ich hab schnell auf einem PC ohne Access, aber mit installierter 64-bit Access Database Engine, einen Test gemacht. Den Verweis auf "Microsoft ActiveX Data Objects 6.1 Library" gesetzt und folgenden Code gestartet. Code: Dim swApp As SldWorks.SldWorksSub main() Set swApp = Application.SldWorks Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sfile As String sfile = swApp.GetUserPreferenceStringValue(swHoleWizardToolBoxFolder) & "\SWBrowser.mdb" conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sfile Set rs = conn.Execute("SELECT * FROM DIN_Categories") While Not rs.EOF Debug.Print rs.Fields(0).Value rs.MoveNext Wend rs.Close conn.Close End Sub
Hat bei mir geklappt Gruss Andreas ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 15. Mai. 2014 13:03 <-- editieren / zitieren --> Unities abgeben:
|