Forums Neueste Beiträge
 

Access 2000 TransferSpreadsheet Parameter Filter

29/03/2010 - 11:40 von Raimund Gryszik | Report spam
Hallo Experten!

Vermutlich gibt es für mein Problem eine simple Lösung, nur finde ich sie
nicht:

Eine gespeicherte Abfrage soll als Excel-Tabelle ausgegeben werden. Dazu
muss die Abfrage gefiltert werden. Z.B. sollen nur Datensàtze exportiert
werden, wo die Spalte "Jahr" den Wert "2009" hat.

Folgendes geht leider nicht (Fehlermeldung Laufzeitfehler 2491, Die Aktion
oder Methode ist nicht zulàssig, da das Formular bzw. der Bericht nicht an
eine Tabelle oder Abfrage gebunden ist)

DoCmd.ApplyFilter "MeineAbfrage", "Jahr = '2009'"

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "MeineAbfrage",
"Datei", True

Folgendes bringt keine Filterwirkung (es werden stattdessen sàmtliche
Datensàtze exportiert)

DoCmd.OpenQuery "MeineAbfrage", acViewNormal, acReadOnly
DoCmd.ApplyFilter "MeineAbfrage", "Jahr = '2009'"

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "MeineAbfrage",
"Datei", True

DoCmd.Close acQuery, "MeineAbfrage"

Was könnte ich stattdessen tun? Der User soll nur auf einen Formularknopf
klicken, der Export soll dann vollautomatisch stattfinden. Die nötigen
Parameter sind natürlich verànderlich und sollen bei jedem Aufruf errechnet
werden.

Danke für Tipps

Raimund Gryszik, Berlin
 

Lesen sie die antworten

#1 Thomas Möller
29/03/2010 - 11:54 | Warnen spam
Hallo Raimund,

Am 29.03.2010 11:40, schrieb Raimund Gryszik:
Eine gespeicherte Abfrage soll als Excel-Tabelle ausgegeben werden. Dazu
muss die Abfrage gefiltert werden. Z.B. sollen nur Datensàtze exportiert
werden, wo die Spalte "Jahr" den Wert "2009" hat.

Folgendes geht leider nicht (Fehlermeldung Laufzeitfehler 2491, Die Aktion
oder Methode ist nicht zulàssig, da das Formular bzw. der Bericht nicht an
eine Tabelle oder Abfrage gebunden ist)

DoCmd.ApplyFilter "MeineAbfrage", "Jahr = '2009'"

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "MeineAbfrage",
"Datei", True

Folgendes bringt keine Filterwirkung (es werden stattdessen sàmtliche
Datensàtze exportiert)

DoCmd.OpenQuery "MeineAbfrage", acViewNormal, acReadOnly
DoCmd.ApplyFilter "MeineAbfrage", "Jahr = '2009'"

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "MeineAbfrage",
"Datei", True

DoCmd.Close acQuery, "MeineAbfrage"

Was könnte ich stattdessen tun? Der User soll nur auf einen Formularknopf
klicken, der Export soll dann vollautomatisch stattfinden. Die nötigen
Parameter sind natürlich verànderlich und sollen bei jedem Aufruf errechnet
werden.



Du könntest eine weitere Abfrage für den Export verwenden. Vor dem
Export ànderst Du entsprechend den SQL-String der Abfrage und baust So
Dein Filterkriterium mit ein:

Dim strSQL As String

strSQL = "SELECT * FROM DeineBisherigeAbfrage " & &
"WHERE Jahr = '2009'"

CurrentDb.QueryDefs("DeineNeueAbfrage".SQL = strSQL

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
"DeineNeueAbfrage", "Datei", True


BTW: "Jahr" ist ein schlechter Name für ein Feld. Jahr ist ein in Access
reserviertes Wort. Weitere Infos findest Du hier:
www.donkarl.com?FAQ1.5
(Link in einer Zeile)



HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen