mir liegt eine Access-Datenbank vor.
Diese möchte ich mit SQL-Befehlen abfragen und die jeweiligen Ergebnisse in Excel darstellen.
Frage:
Wie ist dies möglich? Bei VBA kenne ich die Grundlagen, jedoch keinerlei Datenbank-Verbindungs/-abfrage Syntax
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?
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
mir liegt eine Access-Datenbank vor.
Diese möchte ich mit SQL-Befehlen abfragen und die jeweiligen
Ergebnisse in Excel darstellen.
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
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
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&:stuck_out_tongue_winking_eye:aste ist nicht mein Ziel =)
Habt Ihr vlt noch einen Buchtip oder ein gutes Tutorial?
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?