TestseT Geschrieben 8. März 2005 Geschrieben 8. März 2005 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.
Mr.Brot Geschrieben 8. März 2005 Geschrieben 8. März 2005 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
TestseT Geschrieben 8. März 2005 Autor Geschrieben 8. März 2005 Bei: "Set RecSet = New Recordset" meckert der Kompiler mit: Unzulässige Verwendung des Schlüsselworts "New" Warum? :confused:
TestseT Geschrieben 8. März 2005 Autor Geschrieben 8. März 2005 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?
Mr.Brot Geschrieben 9. März 2005 Geschrieben 9. März 2005 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.
TestseT Geschrieben 11. März 2005 Autor Geschrieben 11. März 2005 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.
TestseT Geschrieben 11. März 2005 Autor Geschrieben 11. März 2005 Thema Steuerelement Habe es nun hinbekommen. Man bekommt die zusätzlichen Steuerelemente nicht wie gewöhnlich über den "zusätzliche Steuerelemente-Button" in der Werkzeugsammlung, sondern über die Menüleiste: Extras --> zusätzliche Steuerelemente.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden