Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ADODB.Connection und 64 bit

1,020 views
Skip to first unread message

Lupus Goebel

unread,
Nov 19, 2013, 6:32:22 PM11/19/13
to
Tachschen,


bei dem code:
\\\
Dim DB as Object
Dim dbname As String

dbname = ActiveDocument.FilePath & "kalender.mdb"
Set DB = New ADODB.Connection

DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbname & ";"

DB.Execute "DELETE * FROM tblFeiertage;"
///

bekomme ich die Fehlermeldung:
"Provider nicht gefunden"
Laufzeitfehler: 3706


Das ganze ist VBA in CorelDraw x6 als 64 Bit Version
unter Win 7 als 64 bit mit Office 2007, 32 bit.

Was habe ich hier denn für eine Lösungsmöglichkeit?

--
MfG - Lupus Goebel
Der Sumpf- Morasthobbybastler und Anfaenger mit
Wissensdurst (http://www.lupusdw.de http://foto.lupusdw.de)
Urlaub macht man in Irland: http://www.eaglesnest-bb.com/

Ulrich Möller

unread,
Nov 20, 2013, 8:15:23 PM11/20/13
to
Am 20.11.2013 00:32, schrieb Lupus Goebel:
> Tachschen,
>
>
> bei dem code:
> \\\
> Dim DB as Object
> Dim dbname As String
>
> dbname = ActiveDocument.FilePath & "kalender.mdb"
> Set DB = New ADODB.Connection
>
> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbname & ";"
>
> DB.Execute "DELETE * FROM tblFeiertage;"
> ///
>
> bekomme ich die Fehlermeldung:
> "Provider nicht gefunden"
> Laufzeitfehler: 3706
>
>
> Das ganze ist VBA in CorelDraw x6 als 64 Bit Version
> unter Win 7 als 64 bit mit Office 2007, 32 bit.
>
> Was habe ich hier denn für eine Lösungsmöglichkeit?
>

Überprüfe einfach einmal, welche Provider installiert sind, z.B. mit der
Powershell:

> (New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | select
SOURCES_NAME , SOURCES_DESCRIPTION

Den richtigen Connection String kann man hier nachlesen:
http://www.connectionstrings.com/

Ulrich

Ulrich Möller

unread,
Nov 20, 2013, 8:29:11 PM11/20/13
to
Am 20.11.2013 00:32, schrieb Lupus Goebel:
> Tachschen,
>
>
> bei dem code:
> \\\
> Dim DB as Object
> Dim dbname As String
>
> dbname = ActiveDocument.FilePath & "kalender.mdb"
> Set DB = New ADODB.Connection
>
> DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbname & ";"
>
> DB.Execute "DELETE * FROM tblFeiertage;"
> ///
>
> bekomme ich die Fehlermeldung:
> "Provider nicht gefunden"
> Laufzeitfehler: 3706
>
>
> Das ganze ist VBA in CorelDraw x6 als 64 Bit Version
> unter Win 7 als 64 bit mit Office 2007, 32 bit.
>
> Was habe ich hier denn für eine Lösungsmöglichkeit?
>
Nachtrag:

für eine 64Bit-Programmungebung bitte beachten:
http://www.connectionstrings.com/using-jet-in-64-bit-environments/

Eventuell muß die passende Database Engine von Microsoft noch
heruntergeladen werden und dann wäre der richtige Provider:
Microsoft.ACE.OLEDB.12.0

Ulrich

Lupus Goebel

unread,
Nov 21, 2013, 9:51:12 AM11/21/13
to
Tach,

Am 21.11.2013 02:15, schrieb Ulrich Möller:

> Überprüfe einfach einmal, welche Provider installiert sind, z.B. mit
> der Powershell:
>
>> (New-Object System.Data.OleDb.OleDbEnumerator).GetElements() |
>> select SOURCES_NAME , SOURCES_DESCRIPTION


Da kommt das dabei raus:

SOURCES_NAME SOURCES_DESCRIPTION
------------ -------------------
SQLOLEDB Microsoft OLE DB Provider for SQL Se...
MSDataShape MSDataShape
SQLNCLI11 SQL Server Native Client 11.0
ADsDSOObject OLE DB Provider for Microsoft Direct...
SQLNCLI11 Enumerator SQL Server Native Client 11.0 Enumer...
Windows Search Data Source Microsoft OLE DB Provider for Search
MSDASQL Microsoft OLE DB Provider for ODBC D...
MSDASQL Enumerator Microsoft OLE DB Enumerator for ODBC...
SQLOLEDB Enumerator Microsoft OLE DB Enumerator for SQL ...
MSDAOSP Microsoft OLE DB Simple Provider
MSIDXS Microsoft OLE DB Provider for Indexi...

Lupus Goebel

unread,
Nov 21, 2013, 10:04:01 AM11/21/13
to


Am 21.11.2013 02:29, schrieb Ulrich Möller:

> Nachtrag:
>
> für eine 64Bit-Programmungebung bitte beachten:
> http://www.connectionstrings.com/using-jet-in-64-bit-environments/
>
> Eventuell muß die passende Database Engine von Microsoft noch
> heruntergeladen werden und dann wäre der richtige Provider:
> Microsoft.ACE.OLEDB.12.0

ich meine ganz oft gelesen zu haben, das dieses ACE nicht lauffähig ist,
wenn noch eine 32 BIT Anwendung auf dem Rechner ist. Habe ich mich da
verlesen?

Lupus Goebel

unread,
Nov 21, 2013, 10:25:42 AM11/21/13
to


Am 21.11.2013 02:15, schrieb Ulrich Möller:

>
> Den richtigen Connection String kann man hier nachlesen:
> http://www.connectionstrings.com/


das da:
\\\
Dim dbs As DAO.Database
Dim dbname As String

dbname = "D:\test\test.mdb"
Set dbs = OpenDatabase(dbname)
dbs.Execute ("DELETE * FROM tblFeiertage;")
///

in Excel von Office 2007 läuft es (32 BIT Version).
In Corel (64 BIT Version) läuft es nicht.
Da bekomme ich die Meldung:
\\\
Laufzeitfehler 429
Objekterstellung durch ActivX-Komponente nicht möglich
///

Kann es sein, weil Corel 64 Bit ist und Excel 32 Bit, das es dort läuft?

Ulrich Möller

unread,
Nov 21, 2013, 11:27:33 AM11/21/13
to
Am 21.11.2013 16:04, schrieb Lupus Goebel:
>
>
> Am 21.11.2013 02:29, schrieb Ulrich Mᅵller:
>
>> Nachtrag:
>>
>> fᅵr eine 64Bit-Programmungebung bitte beachten:
>> http://www.connectionstrings.com/using-jet-in-64-bit-environments/
>>
>> Eventuell muᅵ die passende Database Engine von Microsoft noch
>> heruntergeladen werden und dann wᅵre der richtige Provider:
>> Microsoft.ACE.OLEDB.12.0
>
> ich meine ganz oft gelesen zu haben, das dieses ACE nicht lauffᅵhig
> ist, wenn noch eine 32 BIT Anwendung auf dem Rechner ist. Habe ich
> mich da verlesen?
>

Man muᅵ ein biᅵchen aufpassen, aber die beiden Versionen werden in
verschiedenen Ordnern installiert und auch die Registrierungseintrᅵge
stehen an verschiedenen Orten.

Fᅵr die Installation gibt man "AccessDatabaseEngine_X64.exe /passive",
um die Abfrage zu umgehen. Danach sollte der Provider erscheinen. Man
sollte der Vollstᅵndigkeit halber auch die 32 Bit Version im passive
mode zusᅵtzlich installieren.

Achtung!
Mᅵglicherweise gibt es anschlieᅵen Probleme mit dem MS Office. Dann muᅵ
dieses nochmals im "Reparaturmodus" bzw. "Normal" installiert werden.
Also eine Sicherung ist dringend empfohlen!

siehe auch
http://blogs.msdn.com/b/farukcelik/archive/2010/06/04/accessing-excel-files-on-a-x64-machine.aspx

Wenn man mit ODBC arbeitet, muᅵ man immer explizit das 32Bit oder das
64Bit Verwwaltungstool starten. Mit 'Systemsteuerung/Datenquellen' wird
normalerweise immer nur die 64Bit Variante gestartet.

Ulrich

Ulrich Möller

unread,
Nov 21, 2013, 11:29:11 AM11/21/13
to
Am 21.11.2013 16:25, schrieb Lupus Goebel:
>
>
> Am 21.11.2013 02:15, schrieb Ulrich Mᅵller:
>
>>
>> Den richtigen Connection String kann man hier nachlesen:
>> http://www.connectionstrings.com/
>
>
> das da:
> \\\
> Dim dbs As DAO.Database
> Dim dbname As String
>
> dbname = "D:\test\test.mdb"
> Set dbs = OpenDatabase(dbname)
> dbs.Execute ("DELETE * FROM tblFeiertage;")
> ///
>
> in Excel von Office 2007 lᅵuft es (32 BIT Version).
> In Corel (64 BIT Version) lᅵuft es nicht.
> Da bekomme ich die Meldung:
> \\\
> Laufzeitfehler 429
> Objekterstellung durch ActivX-Komponente nicht mᅵglich
> ///
>
> Kann es sein, weil Corel 64 Bit ist und Excel 32 Bit, das es dort lᅵuft?
>

Ja genau!

Winfried Sonntag

unread,
Nov 21, 2013, 1:29:19 PM11/21/13
to
Am 21.11.2013 schrieb Ulrich Mᅵller:


> Wenn man mit ODBC arbeitet, muᅵ man immer explizit das 32Bit oder das
> 64Bit Verwwaltungstool starten. Mit 'Systemsteuerung/Datenquellen' wird
> normalerweise immer nur die 64Bit Variante gestartet.

*Klugscheiss-Modus an*
In der Systemsteuerung wird bei einem 64-Bit OS die 64-Bit Variante
gestartet, auf einem 32-Bit die 32-Bit Variante. Auf einem 64-Bit OS
muss explizit die %windir%\SysWOW64\odbcad32.exe aufgerufen werden. ;)
*Klugscheiss-Modus aus*

Servus
Winfried
--
Access-FAQ: http://www.donkarl.com/AccessFAQ.htm
Access-Stammtisch: http://www.access-muenchen.de

Ulrich Möller

unread,
Nov 21, 2013, 1:36:13 PM11/21/13
to
Am 21.11.2013 19:29, schrieb Winfried Sonntag:
> Am 21.11.2013 schrieb Ulrich Möller:
>
>
>> Wenn man mit ODBC arbeitet, muß man immer explizit das 32Bit oder das
>> 64Bit Verwwaltungstool starten. Mit 'Systemsteuerung/Datenquellen' wird
>> normalerweise immer nur die 64Bit Variante gestartet.
> *Klugscheiss-Modus an*
> In der Systemsteuerung wird bei einem 64-Bit OS die 64-Bit Variante
> gestartet, auf einem 32-Bit die 32-Bit Variante. Auf einem 64-Bit OS
> muss explizit die %windir%\SysWOW64\odbcad32.exe aufgerufen werden. ;)
> *Klugscheiss-Modus aus*
>
> Servus
> Winfried

Entschuldigung, wenn ich etwas ungenau war, aber wenn Lupus in VBA
programmiert, habe ich angenommen, daß das allgemein bekannt ist. Ich
wollte nur nochmal daran erinnern O:-) .

Ulrich

Lupus Goebel

unread,
Nov 21, 2013, 1:54:18 PM11/21/13
to


Am 21.11.2013 19:36, schrieb Ulrich Mᅵller:

> Entschuldigung, wenn ich etwas ungenau war, aber wenn Lupus in VBA
> programmiert, habe ich angenommen, daᅵ das allgemein bekannt ist. Ich
> wollte nur nochmal daran erinnern O:-) .

Dann schau mal meine Sig an ;)
0 new messages