Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1060to1064
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
Inhaltsverzeichnis

Verbindung Excel zu Access

Verbindung Excel zu Access
18.03.2009 09:20:13
Martin
Hallo zusammen,
ich suche nach einer Moeglichkeit ueber eine Excelformel Werte aus Access Datenbanken auszulesen.
Wenn ich ja zum Beispiel einen Cube im SQL Server habe, dann kann ich mittels einem Add-in namens "Excel 2002/2003 Add-In für SQL Server Analysis Services" ganz spezifisch auf einzelne Werte zugreifen.
Genau soetwas oder etwas Aehnliches suche ich fuer die Verbindung von Access zu Excel. Im Notfall habe ich mir schon ueberlegt etwas angebrachtes mit Makros und ODBC zu basteln. Das waere aber ein Stueck zu aufwendig, denke ich.
Danke fuer jeden Hinweis,
Martin

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

Betreff
Datum
Anwender
Anzeige
AW: Verbindung Excel zu Access
18.03.2009 09:52:01
Oberschlumpf
Hi Martin
Eine Formel ist mir nicht bekannt, um dein Problem zu lösen.
Aber mit VBA ist es auch kein großer Aufwand, eine Access-DB auszulesen, finde ich.
Wenn ich nix vergessen habe, sieht wie folgt der grundsätzliche Aufbau eines Codes aus, um eine Access-DB auszulesen:

Sub sbListe()
Dim ldbDVD As Database
Dim lrsDVD As Recordset
Dim lrngDVD As Range
Dim lstrAbfrage As String
Dim lloCol As Long, lloRow As Long
'Datenbankconnect
'alles großgeschriebene musst du anpassen
Set ldbDVD = OpenDatabase(ThisWorkbook.Path & "\DB-NAME.MDB")
'erstellt eine SQL-Abfrage, die 6 Datenbankfelder berücksichtigt und nach FELD1 sortiert
'alles großgeschriebene musst du anpassen
lstrAbfrage = "Select FELD1, FELD2, FELD3, FELD4, FELD5, FELD6 from DB-TABELLE order by  _
FELD1;"
Set lrsDVD = ldbDVD.OpenRecordset(lstrAbfrage, dbOpenSnapshot)
'Zielbereich
With ThisWorkbook.Sheets(1)
If .Cells(.Rows.Count, 2).End(xlUp).Row >= 11 Then
.Rows("11:" & .Cells(.Rows.Count, 2).End(xlUp).Row).Delete
End If
Set lrngDVD = .Range("B11")
End With
If lrsDVD.EOF = True Then
MsgBox "kein Datensatz gefunden"
Set ldbDVD = Nothing
lrsDVD.Close
ActiveSheet.Range("B1").Select
Exit Sub
End If
lrsDVD.MoveFirst
lloRow = 0
'in der Do/Loop-Schleife werden alle in der Datenbank gefundenen Datensätze
'abgearbeitet
Do While Not lrsDVD.EOF
'in der For/Next-Schleife werden alle im Datensatz vorhandenen
'Datenfeldwerte Excelzellen zugewiesen
For lloCol = 0 To lrsDVD.Fields.Count - 1
lrngDVD.Offset(lloRow, lloCol) = lrsDVD.Fields(lloCol)
Next
lrsDVD.MoveNext
lloRow = lloRow + 1
Loop
lrsDVD.Close
Set ldbDVD = Nothing
End Sub


Wichtig!!
Du musst im VBE den Verweis auf
Microsoft ActiveX Data Objects 2.0 Library
setzen.
(kann sein, dass der Verweis bei dir n bissi anders heißt, da ich noch Excel XP, aber noch nicht Excel 2003 verwende)
Hilfts?
Wenn nicht, dann zeig uns (d)eine Bsp-Access-DB und Bsp-Excel-Datei, in die wir dann vielleicht den Code einbauen können.
Ciao
Thorsten

Anzeige
AW: Verbindung Excel zu Access
18.03.2009 12:02:58
Luschi
Hallo Martin & Thorsten,
statt der Do While-Schleife zum Eintragen der Werte aus dem Recordset in die Excel-Tabelle
kann man auch diese Excel-Methode benutzen:
lrngDVD.CopyFromRecordset lrsDVD
Um die Feldüberschriften mit zu übernehmen:
With ThisWorkbook.Sheets(1)
   For i = 2 To 7
   .Cells(11, i).Value = lrsDVD.Fields(i - 2).Name
   Next i
End With
Zudem muß noch folgender Verweis gesetzt werden:
Microsoft DAO 3.x Object Library
Gruß von Luschi
aus klein-paris
Danke
18.03.2009 12:05:33
Oberschlumpf
Hi & Danke...wieder was gelernt
Mal sehen, wann von Martin Feedback kommt.
Ciao
Thorsten
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige