Zum Inhalt springen

VBA und Access


TestseT

Empfohlene Beiträge

Ich bekomme aus Excel heraus keine Verbindung zu meiner Accessdatenbank (Laufzeitfehler 3706 Provider kann nicht gefunden werden).

Ich will aus Excel heraus per VBA SQL-Abfragen an meine Accessdatenbank schicken. Was muss ich alles für Verweise setzen und ODBC-Treiber installieren, damit das funktioniert?


Private Sub CommandButton1_Click()

   tabelle = "tbl_Buchung"

   pfad = "C:\Project\kasse.mdb"


   Set con = New ADODB.Connection

   con.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;" & "Source=" & pfad


   Set rs = New ADODB.Recordset

   rs.CursorLocation = adUseClient

   rs.Open "select * from " + tabelle + "", con, adOpenStatic, adLockBatchOptimistic


   Set rsschema = con.OpenSchema(adSchemaTables)


       Do Until rsschema.EOF

           Combo1.AddItem rsschema

           Combo1.Text = Combo1.List

           rsschema.MoveNext

       Loop

   rsschema.Close

End Sub

WindowsXP SP1

Office 97

Habe mich im Internet schon dumm und dusselig gesucht(2 Tage). Leider fand ich einfach keine sauber Beschreibung, welche Verweise gesetzt werden müssen. :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Qual der Wal.

#  Access


    *  ODBC



          o  Standard Security:

            "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;"



          o  Workgroup:

            "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;"



          o  Exclusive:

            "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd="



    *  OLE DB, OleDbConnection (.NET)



          o  Standard security:

            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;"



          o  Workgroup (system database):

            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:System Database=system.mdw;"



          o  With password:

            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;" 
Und noch was..
        Set Conn = New ADODB.Connection                      ' Conn wird als neue ADO Datenbank Verbindung anerkannt

        With Conn


            .Provider = "Microsoft Jet 4.0 OLE DB Provider"     ' Datenbankformat: Access 2000


            .ConnectionString = "Data Source=" & strAppPath & DBName & "" ' Datenquelle

            .Properties("Jet OLEDB:Database Password") = DBpw

            .Open                                               ' Verbindung öffnen


        End With


        Set RecSet = New Recordset

        With RecSet


            .ActiveConnection = Conn

            .CursorLocation = adUseClient

            .Source = "SELECT * FROM " & TabellenName & " WHERE " & SpaltenName & " <> """" AND " & SpaltenName & " IS NOT NULL"

            .Open


        End With

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, als ich folgendes probiert habe, geht es nun:


Public RecSet As ADODB.Recordset

...

Set RecSet = New ADODB.Recordset

Allerdings habe ich nun leichte Probleme, an die Daten heranzukommen. Wie lese ich die einzelnen Tabellenzeilen nun am cleversten aus? Kann mir da bitte einer helfen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier ein kleines Beispiel wie man den Inhalt des RecordSet in ein ListView ein fügt. Du mußt es nur an dein Excel anpassen.

        For i = 1 To RecSet.Fields.Count - 1


            lstvDaten.ColumnHeaders.Add , , RecSet.Fields(i).Name, 1500


        Next i


        While Not RecSet.EOF


            Set itmx = lstvDaten.ListItems.Add


            For j = 1 To RecSet.Fields.Count - 1


                If Not IsNull(RecSet.Fields(j)) Then


                    itmx.SubItems(j) = RecSet.Fields(j)


                Else


                    itmx.SubItems(j) = ""


                End If


            Next j


            RecSet.MoveNext


        Wend

In der For - Schleife werden die Spaltennamen ausgelesen und zugewiesen.

Und in der While - Schleife werden die Daten zu den passenden Spalten zugewiesen.

In der zweiten For - Schleife wird geprüft ob Daten vorhanden sind und nicht "nichts" drin ist und falls doch ein " " eingefügt.

Ich hoffe es hilft dir ein bischen weiter.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, danke. Sehr schön. :)

Bin nun mit dem Projekt gut voran gekommen.

btw: Ist es denn in Excel nicht möglich, ein Kalendersteuerelement einzufügen? Ich bekomme das einfach nicht hin. Auf dem Arbeitsblatt selbst nicht, und auch nicht in der VBA-Entwicklungsumgebung z.B. auf einer Form. :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...