Herbers Excel-Forum - das Archiv

import von access

Bild

Betrifft: import von access
von: jhaustein
Geschrieben am: 29.09.2003 15:06:36
hallo gemeinschaft

habe ein script gefunden, welches angeblich das importieren kann - weiss nur nicht wie es funzt - wenn ich es in ein modul kopiere und mit F8 den schrittweisen test machen will passiert garnichts

Sub ADOImportFromAccessTable(DBFullName As String, _
TableName As String, TargetRange As Range)
ADOImportFromAccessTable "C:\FolderName\DataBaseName.mdb", _
"TableName", Range("C1")
Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer
Set TargetRange = TargetRange.Cells(1, 1)
' open the database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
DBFullName & ";"
Set rs = New ADODB.Recordset
With rs
' open the recordset
.Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable
' all records
'.Open "SELECT * FROM " & TableName & _
" WHERE [FieldName] = 'MyCriteria'", cn, , , adCmdText
' filter records
RS2WS rs, TargetRange ' write data from the recordset to the worksheet
'        ' optional approach for Excel 2000 or later (RS2WS is not necessary)
'        For intColIndex = 0 To rs.Fields.Count - 1 ' the field names
'            TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name
'        Next
'        TargetRange.Offset(1, 0).CopyFromRecordset rs ' the recordset data
End With
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub

Bild

Betrifft: AW: import von access
von: Nike
Geschrieben am: 29.09.2003 15:24:50
Hi,
du wirst noch eine Verknüpfung zum Objektmodell im VBA Editor aktivieren müssen...
Also, Alt F11 und dann über Exrtas/Verweise einen Verweis auf
das Objektmodell von Access setzen...

Bye

Nike
Bild

Betrifft: AW: import von access
von: jhaustein
Geschrieben am: 29.09.2003 15:32:14
oh gott - da sind ja tausende drinn- weisst du welches ich da aktivieren muss
Bild

Betrifft: AW: import von access
von: jhaustein
Geschrieben am: 29.09.2003 15:39:23
hab ein paar dinger dazu geschaltet - leider passiert da trotzdem nichts
Bild

Betrifft: AW: import von access
von: Nike
Geschrieben am: 29.09.2003 16:10:54
Hi,
das von Microsoft Access?
Also was mit MS ADO oder MS DAO ;-)

Bye

Nike
Bild

Betrifft: AW: import von access
von: jhaustein
Geschrieben am: 29.09.2003 16:12:51
hab ich gemacht leider das gleiche ergebnis - passiert nichts - kannst du mir vielleichgt schreiben, wie die obere sub zeile aussehen muss

so bestimmt nicht oder?
Sub ADOImportFromAccessTable "C:\FolderName\DataBaseName.mdb", "TableName", Range("C1")
Bild

Betrifft: AW: doch doch... (Prozeduraufruf mit Variablen)
von: Nike
Geschrieben am: 29.09.2003 16:33:07
Hi,
so bestimmt doch:
Sub ADOImportFromAccessTable(DBFullName As String, _
TableName As String, TargetRange As Range)
wenn ich diese Prozedur aufrufen möchte
und ihr beim Aufruf auch gleich die Variablen übergeben möchte...
Das ist der Anzatz, um globale Variablen zu vermeiden.
z.B.
Sub test()
call 
Sub ADOImportFromAccessTable("C:\testverzeichnis\test.mdb", _
"TestTabelle_In_DB", Range("A1:Z1000"))
End Sub


Sub ADOImportFromAccessTable(DBFullName As String, _
TableName As String, TargetRange As Range)
End Sub


Es könnte sein, das du den Target Range erst noch
rausfummeln mußt, weil der (glaub ich) nicht vom Ergebnisrange
abweichen darf, aber einfach mal austesten...

Bye

Nike
Bild

Betrifft: AW: doch doch... (Prozeduraufruf mit Variablen)
von: jhaustein
Geschrieben am: 29.09.2003 16:48:35
wenn ich das schreibe, dann wird das schon rot dargestellt

Sub test()
call 
Sub ADOImportFromAccessTable("C:\testverzeichnis\test.mdb", _
"TestTabelle_In_DB", Range("A1:Z1000"))
End Sub

Bild

Betrifft: AW: doch doch... (Prozeduraufruf mit Variablen)
von: jhaustein
Geschrieben am: 29.09.2003 16:54:02
okay das geht jetzt

leider kommt jetzt folgende fehlermeldung bei
Dim cn As ADODB.Connection, rs As ADODB.Recordset, intColIndex As Integer

fehler beim kompilieren
Bild

Betrifft: AW: doch doch... (Prozeduraufruf mit Variablen)
von: jhaustein
Geschrieben am: 30.09.2003 10:31:58
moin gemeinschaft
mit hilfe von nike und stundenlanger bastelstunde geht jetzt da was - vielleicht interessant auch für euch

ich poste mal nen bsp
Sub ADOImportFromAccessTable(DBFullName As String, _
TableName As String, TargetRange As Range)
Tabelle3.Select
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim intColIndex As Integer
Set TargetRange = TargetRange.Cells(1, 1)
' open the database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
DBFullName & ";"
Set rs = New ADODB.Recordset
With rs
' open the recordset
.Open TableName, cn, adOpenStatic, adLockOptimistic, adCmdTable
' all records
'.Open "SELECT * FROM " & TableName & _
" WHERE [FieldName] = 'MyCriteria'", cn, , , adCmdText
' filter records
'  RS2WS rs, TargetRange ' write data from the recordset to the worksheet
wenn ihr hier das simikolon weg nehmt, dann funzt es bei mir nicht - vielleicht bei euch
'        ' optional approach for Excel 2000 or later (RS2WS is not necessary)
For intColIndex = 0 To rs.Fields.Count - 1 ' the field names
TargetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name
Next
TargetRange.Offset(1, 0).CopyFromRecordset rs ' the recordset data
End With
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub


Sub aufruf()
Call ADOImportFromAccessTable("D:\Programme\Microsoft Office\Office\Beispiel\nordwind.mdb", _
"Kunden", Range("A1:Z1"))
End Sub


es muss jetzt noch unter extras/verweise die verknüpfung microsoft ado ... aktiviert werden

das wars
 Bild
Excel-Beispiele zum Thema " import von access"
Zeichenfolgen in Zahlen nach Textimport Textimport aus Text-Datei mit Smikoli als Feldtrenner
Import aus dem Internet Textimport mit Semikolon als Feldseparator
In importierter Textdatei englische Werte in deutsche wandeln Textdatei in Tabellenblatt importieren
Nach Textimport Strings in Zahlen wandeln Textdatei nach Begriff durchsuchen und Fundzeile importieren
Diagramm exportieren und in Tabellenblatt importieren Suchbegriffe in UserForm eingeben, Fundstelle importieren