Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

von Access in Excel

Forumthread: von Access in Excel

von Access in Excel
07.03.2007 14:01:08
Access
Hallo beisammen,
ich möchte gerne von Excel aus eine Abfrage an Access schicken, und das in Form eines SQL-Statements. Hat das schonmal jemand gemach, bzw weiß jemand wie das funkioniert?
Grüße
Manfred
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: von Access in Excel
07.03.2007 17:05:27
Access
Hallo Manfred,
hier ein Beispiel, das du bei VBA gut leicht anpassen kannst:


Option Explicit
Sub DBZugriff_Kerstin()
Dim cn         As Connection
Dim rs         As Recordset
Dim SQLString  As String
Dim xx         As Worksheet   ' das Ziel-Tabellenblatt in Excel
Dim i          As Integer
Dim j          As Integer
'Const DBPfad = "J:\Projects\Vertrieb\EBY-S-IT-Projekt\Datenbank\Archiv&nbsp ;Datenbank.mdb"
Const DBPfad = "C:\Dokumente und Einstellungen\Administrato r\Eigene Dateien\Access-DBs\Archiv Datenbank.mdb"
   Set xx = Worksheets("Tabelle2")  ' das Ziel-Tabellenblatt in Excel
'  Die datenbank öffnen
   Set cn = New ADODB.Connection
   With cn
      .Provider = "Mic rosoft.Jet.OLEDB.4.0"   'für Access 2000 und höher
       .ConnectionString = "Data Source=" & DBPfad
&nbsp ;     .Open
   End With
'  Definieren was geholt werden soll - hier al les
   'SQLString = "SELECT Tabelle1.* FROM Tabelle1"
'    hier nur die PstLZ die mit 2 be ginnen aus der Access-Tabelle
   SQLString = "SEL ECT Tabelle1.* FROM Tabelle1 WHERE Tabelle1.PSTLZ_Straße LIKE "" 3%"""
   Set rs = New ADODB.Recordset
   rs.Open SQLString, cn,  adOpenDynamic, adLockReadOnly
'  Die Feldnamen der Datenbanktabelle in die erste& nbsp;Zeile der Exceltabelle
'  hier in die "Tabelle2" schreiben
   For j = 0 To rs.Fields.Count - 1
      x x.Cells(1, j + 1) = rs.Fields.Item(j).Name
   Next
'  Jetzt alle Sätze holen und in die Exce ltabelle schreiben
   i = 1
    rs.MoveFirst
   Do While rs.EOF = False
      i = i + 1
      For j = 0 To rs.Fields.Count - 1
      & nbsp;  If IsNull(rs.Fields.Item(j).Value) = False Then
            xx.Cells(i,& nbsp;j + 1) = rs.Fields.Item(j).Value
      &n bsp;  End If
      Next
      rs.MoveNext
   Loop
   rs.Close
   cn.Close
End Sub


Gruß Peter
Anzeige
AW: von Access in Excel
08.03.2007 11:48:11
Access
ah, cool, danke
aber beim ausführen sagt er dass Connection und Recordset ein "Benutzerdefinierter Datentyp" ist, und dass dieser "nicht definiert" sei?
Grüße
AW: von Access in Excel
08.03.2007 21:12:04
Access
Hallo Manfred,
Achtung der Verweis auf: Microsoft ActiveX Data Objects 2.0 Library oder eine höhere Version (2.1, 2.5) muss aktiviert sein.
Gruß Peter
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige