Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: benjamin.grimm am September 12, 2013, 16:36:39

Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: benjamin.grimm am September 12, 2013, 16:36:39
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
Titel: Re: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: daolix am September 12, 2013, 17:33:32
Hallo
Was isn jetzt mit Zeitzone gemeint? Wo steht diese und WieUndWo willst du diese verarbeiten/weitergeben?
Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: benjamin.grimm am September 13, 2013, 09:22:00
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
Titel: Re: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: DF6GL am September 13, 2013, 11:42:36
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?
Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: benjamin.grimm am September 14, 2013, 21:12:23
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 ?
Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: DF6GL am September 14, 2013, 21:22:48
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\#") & ")")
Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: benjamin.grimm am September 16, 2013, 08:46:58
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
Titel: Re: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: DF6GL am September 16, 2013, 11:40:25
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\#")   & ")"     )
Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: benjamin.grimm am September 16, 2013, 16:17:24
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.


Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: benjamin.grimm am September 18, 2013, 09:59:45
Wie kann ich verhindern das er den Namen an die Reiter im Excel weitergibt?
Titel: Re: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: bahasu am September 18, 2013, 10:28:28
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
Titel: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: benjamin.grimm am September 18, 2013, 14:57:48
Hi danke für deine Antwort.


Es soll ja nur deaktiviert werden, falls der vertragsbeginn nicht in der eingegebenen Zeit liegt :)

??? ???
Titel: Re: Exportieren von Daten ins Excel nach ID und Reiter, Auswählen spezieller Zeit
Beitrag von: bahasu am September 18, 2013, 18:23:33
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