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

Beiträge aus den Excel-Beispielen zum Thema " import von access"