Connectionstring funktioniert in Word-Makro, aber nicht im Windows-Forms-Projekt

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von VB2021Aug.

    Connectionstring funktioniert in Word-Makro, aber nicht im Windows-Forms-Projekt

    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:

    VB.NET-Quellcode

    1. Dim conn As New ADODB.Connection
    2. Dim rs As New ADODB.Recordset
    3. Dim SQL As String
    4. Dim DBPath As String
    5. Dim connectionString As String
    6. DBPath = "C:\Projekt\Daten.xlsx"
    7. connectionString = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
    8. conn.Open connectionString
    9. SQL = "SELECT * From [Mitarbeiter$]"
    10. rs.Open SQL, conn
    11. ...


    Oder Variante 2

    VB.NET-Quellcode

    1. Dim conn As Object, db As Object, rst As Object, SQL as String, DBPath as String
    2. DBPath = "C:\Projekt\Daten.xlsx"
    3. Set conn = CreateObject("DAO.DBEngine.120") ' Hier ist es mir nicht gelungen, einen passenden Verweis zu setzen.
    4. ' EXCEL OLDER VERSION
    5. 'Set db = conn.OpenDatabase(DBPath, False, True, "Excel 8.0;HDR=Yes;")
    6. ' EXCEL CURRENT VERSION
    7. Set db = conn.OpenDatabase(DBPath, False, True, "Excel 12.0 Xml;HDR=Yes;")
    8. Set rst = db.OpenRecordset("SELECT * From [Mitarbeiter$] ORDER BY Vorname"
    9. ...


    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“ ()

    Danke HenryV,
    ich hatte auch schon so eine Ahnung,
    jetzt habe ich das Projekt mal als x86 und x64 (vorher Any CPU) kompiliert - Leider ohne Erfolg!

    Ich könnte mich ja zurücklehnen und sagen "Hier funktioniert es ja." - zwar etwas umständlich, aber es geht.
    Nur wenn derselbe Quellcode einmal funktioniert und einmal nicht, hinterlässt das bei mir ein ungutes Gefühl.
    "Was passiert, wenn ich mein Projekt weitergebe? Telefoniere ich dann stundenlang und versuche das Problem in jedem Einzelfall per Fernsupport zu lösen?"
    Und wenn ich dann noch nicht einmal eine Ahnung habe, wo der Fehler liegt! - Ungutes Gefühl!