Herbers Excel-Forum - das Archiv
import von access
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

 |
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
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
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
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
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")
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
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
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
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