Hi!
Ich will die Datensätze eine Abfrage in eine vorhanden Exceldatei kopieren.
Eine neue Excel zu erstellen funktioniert leider nicht weil die bedingten Formatierungen welche ich benötige verloren gehen.
Folgender VBA Code funktioniert zwar mit Tabellen innerhalb der DB aber leider nicht mit meiner Abfrage.
Worin liegt mein Fehler?
Code:
Private Sub Befehl3_Click()
Dim xlApp As Object ' Excel.Application
Dim xlBook As Object ' Excel.Workbook
Dim xlSheet As Object ' Excel.Worksheet
Dim rst As DAO.Recordset
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("Pfad")
Set xlSheet = xlBook.sheets("Tabellensheet")
Set rst = CurrentDb.OpenRecordset("Abfrage")
xlSheet.Range("A2").CopyFromRecordset rst
rst.Close
Set rst = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Eine Tabelle wird wie gewünscht in das Excelsheet nach A2 kopiert die Abfrage leider nicht.
Hallo,
zeige bitte mal den SQL-String der Abfrage..
Hallo.
Die SQL Abfrage schaut folgender Maßen aus:
SELECT Tag0.DC_SN,
Tag0.PLC_METER_STATUS,
Tag0.ID,
Tag0.LIFECYCLE_STATUS,
Tag0.APPLICATION_FIRMWARE_VERSION,
Tag0.PARENT_INSTALLATION_POINT_ID,
DateDiff("d",DateValue(Format(Mid(Tag0.LAST_READING_DATE_LP2_24H,1,10),"yyyy-mm-dd")),Date()) AS Heute, DateDiff("d",DateValue(Format(Mid(Tag1.LAST_READING_DATE_LP2_24H,1,10),"yyyy-mm-dd")),Date()-1) AS Gestern, DateDiff("d",DateValue(Format(Mid(Tag2.LAST_READING_DATE_LP2_24H,1,10),"yyyy-mm-dd")),Date()-2) AS TagM2, DateDiff("d",DateValue(Format(Mid(Tag3.LAST_READING_DATE_LP2_24H,1,10),"yyyy-mm-dd")),Date()-3) AS TagM3, DateDiff("d",DateValue(Format(Mid(Tag4.LAST_READING_DATE_LP2_24H,1,10),"yyyy-mm-dd")),Date()-4) AS TagM4, DateDiff("d",DateValue(Format(Mid(Tag5.LAST_READING_DATE_LP2_24H,1,10),"yyyy-mm-dd")),Date()-5) AS TagM5, DateDiff("d",DateValue(Format(Mid(Tag6.LAST_READING_DATE_LP2_24H,1,10),"yyyy-mm-dd")),Date()-6) AS TagM6, MeterStatus.[LP Aktiv],
MeterStatus.[Gesperrt],
Tag0.LAST_READING_DATE_LP2_24H AS Tag0_LAST_READING_DATE_LP2_24H,
Tag1.LAST_READING_DATE_LP2_24H AS Tag1_LAST_READING_DATE_LP2_24H,
Tag2.LAST_READING_DATE_LP2_24H AS Tag2_LAST_READING_DATE_LP2_24H,
Tag3.LAST_READING_DATE_LP2_24H AS Tag3_LAST_READING_DATE_LP2_24H,
Tag4.LAST_READING_DATE_LP2_24H AS Tag4_LAST_READING_DATE_LP2_24H,
Tag5.LAST_READING_DATE_LP2_24H AS Tag5_LAST_READING_DATE_LP2_24H,
Tag6.LAST_READING_DATE_LP2_24H AS Tag6_LAST_READING_DATE_LP2_24H,
Tag0.REGION_GROUP_OR_SERVICE_CENTER_ID
FROM ((((((Tag0 LEFT JOIN Tag2 ON Tag0.[ID] = Tag2.[ID]) LEFT JOIN Tag3 ON Tag0.[ID] = Tag3.[ID]) LEFT JOIN Tag4 ON Tag0.[ID] = Tag4.[ID]) LEFT JOIN Tag5 ON Tag0.[ID] = Tag5.[ID]) LEFT JOIN Tag6 ON Tag0.[ID] = Tag6.[ID]) LEFT JOIN Tag1 ON Tag0.[ID] = Tag1.[ID]) LEFT JOIN MeterStatus ON Tag0.ID= MeterStatus.ID;
Es sind um Grunde 7 Tabellen welche kombiniert werden und 7 Spalten welche berechnet werden.
Hallo,
CopyFromRecordset dürfte die VBA-Funktionen in der Selectliste nicht auflösen könnten..
Was passiert, wenn Du lediglich Folgendes schreibst:
.
.
Tag0.LAST_READING_DATE_LP2_24H -Date() AS [Heute],
Tag1.LAST_READING_DATE_LP2_24H -Date() AS Gestern,
usw.
.
Welchen Datentyp haben diese Felder : LAST_READING_DATE_LP2_24H