Hallo Freunde,
ich wollte aus einem Word-Makro "schnell mal" ein VSTO Projekt erstellen.
Ich habe da einige Probleme, doch in dieser Anfrage geht es erst einmal um den ConnectionString.
Office 2019, Visual Studio Community 2019
Im Word-Makro funktioniert:
Oder Variante 2
Auch die Variante mit "Provider=Microsoft.ACE.OLEDB.12.0;" habe ich probiert!
Problem: Im Word-Makro funktioniert es (alle Varianten)!
Im VSTO-Projekt funktioniert es (alle Varianten), wobei ich der ADODB-Variante den Vorzug gebe.
Es funktioniert nicht: Wenn ich nur ein einfaches Windows-Forms-VB-Projekt erstelle und die ADODB 6.1 verweise. (Nachtrag: natürlich VB.Net)
Es wird in jeder Variante und bei jedem Versuch ein fehlender Provider angemeckert.
Eigentlich könnte ich ja damit leben, da ich ja sowieso das VSTO-Projekt haben will, aber die Programmierung ist etwas umständlich und so würde ich gern zunächst in einem einfacheren Windows-Forms entwickeln.
Hat jemand eine Erklärung, wo ich den Haken vergessen habe?
Ich komme leider nicht drauf.
Vielen Dank!
ich wollte aus einem Word-Makro "schnell mal" ein VSTO Projekt erstellen.
Ich habe da einige Probleme, doch in dieser Anfrage geht es erst einmal um den ConnectionString.
Office 2019, Visual Studio Community 2019
Im Word-Makro funktioniert:
VB.NET-Quellcode
- Dim conn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- Dim SQL As String
- Dim DBPath As String
- Dim connectionString As String
- DBPath = "C:\Projekt\Daten.xlsx"
- connectionString = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
- conn.Open connectionString
- SQL = "SELECT * From [Mitarbeiter$]"
- rs.Open SQL, conn
- ...
Oder Variante 2
VB.NET-Quellcode
- Dim conn As Object, db As Object, rst As Object, SQL as String, DBPath as String
- DBPath = "C:\Projekt\Daten.xlsx"
- Set conn = CreateObject("DAO.DBEngine.120") ' Hier ist es mir nicht gelungen, einen passenden Verweis zu setzen.
- ' EXCEL OLDER VERSION
- 'Set db = conn.OpenDatabase(DBPath, False, True, "Excel 8.0;HDR=Yes;")
- ' EXCEL CURRENT VERSION
- Set db = conn.OpenDatabase(DBPath, False, True, "Excel 12.0 Xml;HDR=Yes;")
- Set rst = db.OpenRecordset("SELECT * From [Mitarbeiter$] ORDER BY Vorname"
- ...
Auch die Variante mit "Provider=Microsoft.ACE.OLEDB.12.0;" habe ich probiert!
Problem: Im Word-Makro funktioniert es (alle Varianten)!
Im VSTO-Projekt funktioniert es (alle Varianten), wobei ich der ADODB-Variante den Vorzug gebe.
Es funktioniert nicht: Wenn ich nur ein einfaches Windows-Forms-VB-Projekt erstelle und die ADODB 6.1 verweise. (Nachtrag: natürlich VB.Net)
Es wird in jeder Variante und bei jedem Versuch ein fehlender Provider angemeckert.
Eigentlich könnte ich ja damit leben, da ich ja sowieso das VSTO-Projekt haben will, aber die Programmierung ist etwas umständlich und so würde ich gern zunächst in einem einfacheren Windows-Forms entwickeln.
Hat jemand eine Erklärung, wo ich den Haken vergessen habe?
Ich komme leider nicht drauf.
Vielen Dank!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB2021Aug“ ()