Hallo
ich würde gern Daten ins Excel exportieren und hierbei vorher eine spezielle Zeitzone angeben?
Ich habe schon folgenden Code. Wie geb ich das nun mit?
Private Sub Befehl1_Click()
Dim xlApp As Object 'Excel.Application
Dim xlBook As Object 'Excel.Workbook
Dim xlSheet As Object 'Excel.Worksheet
Dim rstID As DAO.Recordset, tmpStr As String
Dim rstGr As DAO.Recordset, strSQL As String
Dim startDate As Date, endDate As Date
startDate = InputBox("Enter the START Date", "Enter a Date", Date())
endDate = InputBox("Enter the END Date", "Enter a Date", Date())
strSQL = "SELECT SuWID FROM Abfrage_alles GROUP BY SuWID;"
Set rstID = CurrentDb.OpenRecordset(strSQL)
If rstID.RecordCount > 0 Then
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("S:\Access\SuW\Excel-Tabellen\ID.xlsm")
Do While Not rstID.EOF
Set xlSheet = xlBook.Sheets("Tabelle " & rstID.Fields("SuWID"))
xlSheet.Name = "ID" & rstID.Fields("SuWID")
Set rstGr = CurrentDb.OpenRecordset("SELECT SAP, Geris, Pauschale, SuWID, Jahr_Y, BT_Name, SAP_Nummer, inception_date FROM Abfrage_alles WHERE ((SuWID = " & rstID.Fields("SuWID")) AND inception_date BETWEEN " & Format(startDate, "\#mm\/dd\/yyyy\#") & " AND " & Format(endDate, "\#mm\/dd\/yyyy\#") & ")")
xlSheet.Range("A4").CopyFromRecordset rstGr
rstGr.Close
rstID.MoveNext
Loop
Else
MsgBox "No information to export", vbInformation, "No data exported"
End If
rstID.Close
Set rstID = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
greetz benjamin
Hallo
Was isn jetzt mit Zeitzone gemeint? Wo steht diese und WieUndWo willst du diese verarbeiten/weitergeben?
Hi
es handelt sich um Verträge die zu unterschiedlichen Zeitzonen starten (ja ich weiß; hohl erklärt).
Es gibt halt Verträge die zu einer unterschiedlichen Zeit angelaufen sind.
Bsp.
SuWID Vertragsbeginn
1 12.12.2008
2 01.05.2010
3 03.06.2011
4 05.06.2012
5 13.05.2013
6 17.08.2013
Nun möchte ich beispielsweise, als startdate den 01.01.2013 eingeben und als endate den 01.09.2013.
Ich möchte jetzt das er mir nur die Verträge mit der SuWID 5 und 6 anzeigt.
Grüße Benjamin
Hallo,
es ist vermutlich deshalb verwirrend, weil mit "Zeitzone" eher ein "Zeitpunkt" (Datum, Termin) gemeint ist...
und solches ist hier:
.
.
startDate = InputBox("Enter the START Date", "Enter a Date", Date())
endDate = InputBox("Enter the END Date", "Enter a Date", Date())
.
.
....AND inception_date BETWEEN " & Format(startDate, "\#mm\/dd\/yyyy\#") & " AND " & Format(endDate, "\#mm\/dd\/yyyy\#") & ")")
.
.
doch schon implementiert...
Wo also ist das Problem?
hey das probelm ist, das er bei dem between in der Zeile
inception_date BETWEEN " & Format(startDate, "\#mm\/dd\/yyyy\#") & " AND " & Format(endDate, "\#mm\/dd\/yyyy\#") & ")")
immer sagt Fehler beim Kompelieren.
An was liegt das ?
Hallo,
das könntest Du ja gleich am Anfang sagen....
Set rstGr = CurrentDb.OpenRecordset("SELECT SAP, Geris, Pauschale, SuWID, Jahr_Y, BT_Name, SAP_Nummer, inception_date FROM Abfrage_alles WHERE SuWID = " & rstID.Fields("SuWID") & " AND inception_date BETWEEN " & Format(startDate, "\#mm\/dd\/yyyy\#") & " AND " & Format(endDate, "\#mm\/dd\/yyyy\#") & ")")
hi,
danke für deine Hilfe,
ich bekomme, aber leider immer noch einen Fehler.
Ich habe noch inception_date in Vertragsbeginn umbenannt und die amerikanische Datumsdarstellung verwendet.
Es tritt folgender Fehler auf:
Laufzeitfehler 3075 :
Überzählig: ) in Abfrageausdruck SuWID = 2 and vertragsbeginn between #2000-01-01# and # 2013-09-16#)
Private Sub Befehl2_Click()
Dim xlApp As Object 'Excel.Application
Dim xlBook As Object 'Excel.Workbook
Dim xlSheet As Object 'Excel.Worksheet
Dim rstID As DAO.Recordset, tmpStr As String
Dim rstGr As DAO.Recordset, strSQL As String
Dim startdate As Date, enddate As Date
startdate = InputBox("Enter the START Date", "Enter a Date", Date)
enddate = InputBox("Enter the END Date", "Enter a Date", Date)
strSQL = "SELECT SuWID FROM Abfrage_alles GROUP BY SuWID;"
Set rstID = CurrentDb.OpenRecordset(strSQL)
If rstID.RecordCount > 0 Then
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("S:\Access\SuW\Excel-Tabellen\ID.xlsm")
Do While Not rstID.EOF
Set xlSheet = xlBook.Sheets("Tabelle " & rstID.Fields("SuWID"))
xlSheet.Name = "ID" & rstID.Fields("SuWID")
[size=10pt][size=10pt][color=blue][b]Set rstGr = CurrentDb.OpenRecordset("SELECT SAP, Geris, Pauschale, SuWID, Jahr_Y, BT_Name, SAP_Nummer, Vertragsbeginn, Vertragsende FROM Abfrage_alles WHERE SuWID = " & rstID.Fields("SuWID") & " AND Vertragsbeginn BETWEEN " & Format(startdate, "\#yyyy\-mm\-dd\#") & " AND " & Format(enddate, "\#yyyy\-mm\-dd\#") & ")")[/b][/color][/size][/size]
xlSheet.Range("A4").CopyFromRecordset rstGr
rstGr.Close
rstID.MoveNext
Loop
Else
MsgBox "No information to export", vbInformation, "No data exported"
End If
rstID.Close
Set rstID = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Hallo,
die Fehlermeldung sagt es doch:
Eine Klammer ist zuviel:
SuWID = 2 and vertragsbeginn between #2000-01-01# and # 2013-09-16#)
...& " AND " & Format(enddate, "\#yyyy\-mm\-dd\#") & ")" )
Ja super. Vielen Dank
Das klappt schon mal perfekt.
Es werden jetzt keine Daten mehr ans Access übertragen.
Er überträgt aber immer noch die Informationen den Namen des Worksheets zu ändern.
Wie kann ich verhindern das er den Namen an die Reiter im Excel weitergibt?
Hi,
Zitat von: benjamin.grimm am September 18, 2013, 09:59:45
Wie kann ich verhindern das er den Namen an die Reiter im Excel weitergibt?
was passiert, wenn Du die Zeile
' xlSheet.Name = "ID" & rstID.Fields("SuWID")
deaktivierst?
Harald
Hi danke für deine Antwort.
Es soll ja nur deaktiviert werden, falls der vertragsbeginn nicht in der eingegebenen Zeit liegt :)
??? ???
Hi,
mal ins Blaue formuliert:
Set rstGr = CurrentDb.OpenRecordset("SELECT SAP, Geris, Pauschale, SuWID, Jahr_Y, BT_Name, SAP_Nummer, Vertragsbeginn, Vertragsende FROM Abfrage_alles WHERE SuWID = " & rstID.Fields("SuWID") & " AND Vertragsbeginn BETWEEN " & Format(startdate, "\#yyyy\-mm\-dd\#") & " AND " & Format(enddate, "\#yyyy\-mm\-dd\#")")
if rstGr.recordcount > 0 then
xlSheet.Name = "ID" & rstID.Fields("SuWID")
xlSheet.Range("A4").CopyFromRecordset rstGr
end if
Harald