Access 2007 Daten nach Excel 2007

Hallo zusammen,

mir liegt eine Access-Datenbank vor.
Diese möchte ich mit SQL-Befehlen abfragen und die jeweiligen Ergebnisse in Excel darstellen.

  1. Frage:
    Wie ist dies möglich? Bei VBA kenne ich die Grundlagen, jedoch keinerlei Datenbank-Verbindungs/-abfrage Syntax

  2. Frage:
    Ich würde in Excel dann gehe eine Schleife für die Abfrage und Eintragung in verschiedene Zellen machen. Kann mir dafür jemand die grundlegende Syntax nennen, wie ich den abgefragten Datensatz X in Zelle (i,j = Zeile, Spalte) schicken kann?

Vielen Dank für Eure Hilfe!

Gruß
Sebastian

Hallo Sebastian,

mein Vorschlag:
Habe mal meine benutze Sub mal ein wenig verkleinert. (Hoffentlich keinen Fehler drin)

Sub ExcelExport(TabelleOderAbfrageSQL1 As String, TabelleOderAbfrageSQL2 As String, \_
 FullExcelDateiName As String, \_
 ExcelTabName As String)

 'bezieht sich auf eine Excelvorlage: "VorlageDatei.xlt"
 'Daten werden mit 2 verschiedenen Abfragen erstellt

 Dim xlApp As Object, xlBook As Object, xlSheet As Object
 Dim db As DAO.Database, rs, rs1 As DAO.Recordset
 Dim i As Integer

 Set db = CurrentDb

 ' Excel datei öffnen ohne Fehlerbehandlung
 On Error Resume Next
 Set xlApp = GetObject(, "Excel.Application")
 If xlApp Is Nothing Then
 Set xlApp = CreateObject("Excel.Application")
 End If
 On Error GoTo 0
 Set xlBook = xlApp.Workbooks.Open(FullExcelDateiName)
 Set xlSheet = xlBook.Sheets(ExcelTabName)

 ' Testphase mit anschauen
 xlApp.Visible = True


 Set rs = db.OpenRecordset(TabelleOderAbfrageSQL1)
 Set rsDeal = db.OpenRecordset(TabelleOderAbfrageSQL2)

 ' neuen ZellenInhalt schreiben
 Dim myProjectart, myMehrMinderKosten


 xlSheet.range("B5").Value = rs!FeldName1 'B5 
 xlSheet.range("F5").Value = rs!FeldName2 'F5 
 ' usw.


 Set xlSheet = xlBook.Sheets(ExcelTabName)
 Set rs1 = db.OpenRecordset(TabelleOderAbfrageSQL2)

 'nur Startzelle wird festgelegt
 xlSheet.range("B129").CopyFromRecordset rs1

 'Save the Workbook and Quit Excel
 Set rs = Nothing
 Set rs1 = Nothing
 Set xlSheet = Nothing
 Set xlBook = Nothing
 'xlApp.Application.Quit Excel beenden
 Set xlApp = Nothing

End Sub

Viel Erfolg
Ute

Hallo,

mir liegt eine Access-Datenbank vor.
Diese möchte ich mit SQL-Befehlen abfragen und die jeweiligen
Ergebnisse in Excel darstellen.

  1. Frage:
    Wie ist dies möglich? Bei VBA kenne ich die Grundlagen, jedoch
    keinerlei Datenbank-Verbindungs/-abfrage Syntax

Aus Excel heraus kann per Excel-VBA und mit Hilfe der Datenzugriffsobjekte (DAO, ADODB-Recordsets) auf die Access-Tabellen und damit auf die dort enthaltenen Werte einzeln zugegriffen werden

  1. Frage:
    Ich würde in Excel dann gehe eine Schleife für die Abfrage und
    Eintragung in verschiedene Zellen machen. Kann mir dafür
    jemand die grundlegende Syntax nennen, wie ich den abgefragten
    Datensatz X in Zelle (i,j = Zeile, Spalte) schicken kann?

In Excel per Schaltfläche:

Sub Schaltfläche1_BeiKlick()
Dim rs As DAO.Recordset
Dim db As Database

Dim ROffset As Long, COffset As Long, i As Long
ROffset = 0
COffset = 0
Set db = OpenDatabase(„c:\db1.mdb“, False)
Set rs = db.OpenRecordset(„abfrage1“, dbOpenSnapshot)

Do Until rs.EOF
For i = 1 To rs.Fields.Count
Cells(1 + rs.AbsolutePosition + ROffset, i + COffset) = rs.Fields(i - 1)
Next
rs.MoveNext
Loop

rs.Close
Set rs = Nothing
db.Close
Set db = Nothing

End Sub

Gruß
Franz , DF6GL

Vielen Dank Euch beiden,

ich muss jedoch gestehen, dass mir damit noch nicht so ganz geholfen ist, denn ich verstehe teilweise gar nicht, was die einzelnen Anweisungen bewirken. Und nur Copy&amp:stuck_out_tongue_winking_eye:aste ist nicht mein Ziel =)

Habt Ihr vlt noch einen Buchtip oder ein gutes Tutorial?

Dankeschön.

VG

Habt Ihr vlt noch einen Buchtip oder ein gutes Tutorial?

Hallo Sebastian,

lese bitte die Brettbeschreibung, dort findest du Links zu entsprechenden Büchern, und in den FAQs hier findest du diverse Linklisten zu Webseiten mit Erklärungen/Tipps und Tricks, sowie fertigen Modulen.

Ein Tutorials wirst du nicht zu dem Thema finden. Das wäre ungefähr so, als würdest du fragen: ich mache gerade den Führerschein, gibt es ein Tutorial für die Fünfgangschaltung während der Fahrt?

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)