.mdb öffnen auch ohne Access?

  • Word

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von KronSii.

    .mdb öffnen auch ohne Access?

    Hallo Liebe Community,

    ich bin gerade dabei für meine Firma ein Makro zu schreiben. Das Makro öffnet eine .mdb Datenbank, ließt aus dieser einige Daten aus und schreibt sie nachher in das Word Dokument. Das funktioniert auch alles soweit, allerdings hat ein Mitarbeiter mein Makro ausprobiert und es kam der Fehler:

    Laufzeitfehler '3705'
    Der Vorgang ist für ein geöffnetes Objekt nicht zugelassen.

    Auf seinem PC ist kein Access installiert. Kann es sein, dass man Access installiert haben muss um die Datenbank in Word zu öffnen? Wenn ja gibt es eine Möglichkeit auch ohne Access das Makro zum laufen zu bringen?


    Gruß KronSii
    Meine Verbindung zu Datenbank sieht so aus:


    Quellcode

    1. Dim cnn As New ADODB.Connection
    2. cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    3. "Data Source=C:\Program Files (x86)\TESTDB\Test.mdb;" & _
    4. "Jet OLEDB:Database Password=mypw;"



    Danach benutze ich einen Recordset um auf die Daten zuzugreifen:


    Quellcode

    1. Dim rec As New Recordset
    2. With rec
    3. .CursorType = adOpenKeyset
    4. .LockType = adLockReadOnly
    5. .Open "SELECT TCPD_ORDERS.OBJECTYEAR, " & _
    6. "TCPD_ORDERS.OBJECTTYPENUMBER, " & _
    7. "TCPD_ORDERS.COMPANYIDENT, " & _
    8. "TCPD_COMPANIES.COMPANYIDENT, " & _
    9. "TCPD_COMPANIES.NAME1 AS [NAME], " & _
    10. "TCPD_COMPANIES.A1STREET AS [STRASSE], " & _
    11. "TCPD_COMPANIES.A1ZIP AS [PLZ], " & _
    12. "TCPD_COMPANIES.A1CITY AS [ORT]" & _
    13. "FROM TCPD_ORDERS INNER JOIN TCPD_COMPANIES ON TCPD_ORDERS.COMPANYIDENT = TCPD_COMPANIES.COMPANYIDENT " & _
    14. "WHERE TCPD_ORDERS.OBJECTYEAR = " & oyear & " AND TCPD_ORDERS.OBJECTTYPENUMBER = " & otypenumber & "", cnn
    15. End With
    16. If rec.RecordCount <> 0 Then
    17. If Not IsNull(rec.Fields("NAME")) Then UF01_AllgemeineDaten.TextBox01_Firmenname.Value = rec.Fields("NAME")
    18. If Not IsNull(rec.Fields("PLZ")) Then UF01_AllgemeineDaten.TextBox01_PLZ.Value = rec.Fields("PLZ")
    19. If Not IsNull(rec.Fields("ORT")) Then UF01_AllgemeineDaten.TextBox01_ort.Value = rec.Fields("ORT")
    20. If Not IsNull(rec.Fields("STRASSE")) Then UF01_AllgemeineDaten.TextBox01_Straße.Value = rec.Fields("STRASSE")
    21. End If
    22. rec.Close