Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Daten aus access
30.10.2007 13:34:00
Kocky
Hallo IHR,
ich probiere grade Daten von und nach access zu schreiben, das Schreiben nach access mittels UF habe ich hinbekommen. Probleme macht mir das auslesen der Daten.
folgender Code bleibt an der Stelle RecSet.Open SQLString, Connect, adOpenDynamic, adLockReadOnly hängen Hat Da jemand eine Idee zu ?
P.S. Code kommt von Peter Feustel aus dem Archiv
Gruß&Dank
kocky

Private Sub UserForm_Activate()
Dim path As String
Dim DBPfad      As String     ' Pfad der Access-Anwendung
Dim DBDatei     As String     ' Name der Access-Datei bzw. DB
Dim DBTab       As String     ' Name der Access-Tabelle
Dim Connect     As Connection ' die Verbindung zu Access
Dim RecSet      As Recordset  ' der Access RecordSet
Dim SQLString   As String     ' der SQL Befehl
Dim iLiBoIndx   As Integer    ' ListBox-Index
Dim Suchbegr    As String     ' zum Suchen in der Access-Datenbank
Suchbegr = "Name"
'  Pfad der Access Datenbank, Name der Access Datei, Name der Access Tabelle
DBPfad = "E:\Ertser\"
DBDatei = "db1.mdb"
DBTab = "allgemein1"
path = "E:\Erster\db1.mdb"
'  die ListBox 'formatieren'
UserForm2.ListBox1.ColumnCount = 9
UserForm2.ListBox1.ColumnWidths = _
"3,0 cm; 3,5 cm; 3,0 cm; 3,2 cm; 1,0 cm; 1,5 cm; 3,5 cm; 3,5 cm; 1,0 cm"
'  Die Datenbank öffnen
Set Connect = New ADODB.Connection
With Connect
.Provider = "Microsoft.Jet.OLEDB.4.0"   ' für Access 2000 und höhere
.ConnectionString = path 'DBPfad & DBDatei
.Open
End With
'  hier nur ein paar Felder gemäß Suchbegiff aus der Access-Tabelle holen
SQLString = "SELECT " & DBTab & ".Name,"  ' _
& " FROM " & DBTab & ";"
'& DBTab & ".Vorname, " _
'& DBTab & ".Geburtsdatum, " _
" FROM " & DBTab & ";"
'& " WHERE " _
'& DBTab & ".Nachname Like '" & Suchbegr & "';"
If SQLString = "" Then
MsgBox "hier ist der Wurm drin, der SQLString ist leer - Abbruch.", _
16, "   der SQLString wurde nicht gefüllt."
Exit Sub
Else
MsgBox SQLString      ' den SQL-String anzeigen
End If
Set RecSet = New ADODB.Recordset
RecSet.Open SQLString, Connect, adOpenDynamic, adLockReadOnly
'  Jetzt den selektierten Record holen und in die ListBox schreiben
If RecSet.EOF = False Then  ' kein EOF => es gibt also Daten !
RecSet.MoveFirst         ' auf dem ersten Datensatz aufsetzen
Else
MsgBox "es konnte nichts selektiert werden => Abbruch.", _
16, "    fehlerhafte Selektion ?"
Exit Sub
End If
Do While RecSet.EOF = False
UserForm2.ListBox1.AddItem " "
If RecSet.Fields.Item(0).Value  "" Then
UserForm2.ListBox1.List(iLiBoIndx, 0) = RecSet.Fields.Item(0).Value
End If
If RecSet.Fields.Item(1).Value  "" Then
UserForm2.ListBox1.List(iLiBoIndx, 1) = RecSet.Fields.Item(1).Value
End If
If RecSet.Fields.Item(2).Value  "" Then
UserForm2.ListBox1.List(iLiBoIndx, 2) = RecSet.Fields.Item(2).Value
End If
If RecSet.Fields.Item(3).Value  "" Then
UserForm2.ListBox1.List(iLiBoIndx, 3) = RecSet.Fields.Item(3).Value
End If
iLiBoIndx = iLiBoIndx + 1
RecSet.MoveNext
Loop
RecSet.Close     ' Access Recordset schließen
Connect.Close    ' Access schließen
End Sub


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus access
30.10.2007 15:48:00
Luschi
Hallo Kocky,
die Eigenschaft 'ConnectionString' enthält alle Angaben zum Öffnen einer Datenbank.
Du mußt allso die Sache so definieren:

Dim cnnString As String
cnnString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & path & ";"
Set Connect = New ADODB.Connection
With Connect
.ConnectionString = cnnString
.Open
End With

Gruß von Luschi
aus klein-Paris

AW: Daten aus access/Peter Feustel Code
kocky
Hallo Luschi,
auch wenn ich den Code abändere, kommt die selbe Fehlermeldung bei der Zeile
RecSet.Open SQLString, Connect, adOpenDynamic, adLockReadOnly
Laufzeitfehler
"Die SELECT-Anweisung schliest ein reserviertes Wort oder einArgumentnamen en, das/der falsch, mit falscher Zeichensetzung oder Überhaupt nicht eingegeben wurde.

Die SQLString Anweisung bezieht sich doch mitSelect auf (DBTab) auf die Tabelle (hier "allgemein1") und
mit (".Name,") ist doch der Feldname gemeint: Oder irre ich mich da?
Gruß&Dank
kocky

Anzeige
AW: Daten aus access/Peter Feustel Code
31.10.2007 06:44:00
Luschi
Hallo Kocky,
habe ein bischen getestet, aber diese Fehlermeldung konnte ich nicht feststellen.
Ich habe hier 1 Beispiel, welches ich für einen anderen Herber-User gemacht habe.
https://www.herber.de/bbs/user/47284.zip
Darin passiert Folgendes:
- im Excel-Blatt wird die Filterbedingung erstellt (alle under nur 1 bestimmte PNr)
- in Excel-Vba wird der SQL-Select-Befehl samt Where-Klausel (Filter) erstellt (in 1 Variable)
- per ADOX wird der Inhalt der Variable in die Access-Abfrage geschrieben
- per ADODB wird die Access-Abfrage ausgeführt und in 1 Recordset geschrieben
- per Excel-Vba werden die Daten aus dem Recordset in die Excel-Tabelle geschrieben
Das klingt zwar sehr kompliziert, aber die Anzahl der Codezeilen ist sehr überschaubar
und man kann andere Zugrifffe immer nach dem gleichen Schema zusammenstellen
Weitere Erklärungen zu diesem Beispiel findest Du hier:
- https://www.herber.de/forum/messages/920277.html
- https://www.herber.de/forum/messages/920424.html
Gruß von Luschi
aus klein-Paris
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige