Wie kann ich Dateien überschreiben ohne Aufforderung in Access 2007?
Ich versuche die Ausgabe mehrerer Tabellen in excel-Dateien. Jedes mal, wenn ich das makro ausführen, es fordert mich auf die alte Datei überschreiben. Ich bin auf der Suche nach einer Methode, die nicht die send-keys, da es sperrt die Tastatur und Maus so lange, bis das makro abgeschlossen ist.
Was wäre die beste Lösung sein?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit DoCmd.OutputTo?
Diese scheint keine Aufforderung zum überschreiben der vorhandenen Dateien.
Können Sie so etwas tun, aber es ist cludgy und nicht sehr robust.
Was Sie auch tun könnte, ist zunächst, ob die Datei vorhanden ist, und dann, wenn es ist, löschen Sie es (natürlich zerstört jede spezielle Datei-Berechtigungen, die Sie gesetzt hatte, auf es).
Haben ein anderes makro, das zuerst ausgeführt wird und löscht die Datei, wenn Sie bereits vorhanden ist.
Kill [PathToFile]
wird, löschen Sie die externen Dateien, aber Sie müssen, um den Fehler zu behandeln, die erzeugt wird, wenn die Datei nicht da ist.Ich schlage vor, Sie Weg von der Verwendung von Makros so bald wie möglich. Sie sind nicht robust (keine Fehlerbehandlung) und nicht handhabbar (wie wollen Sie herausfinden, wo ein makro soll verwendet werden?).
DoCmd.OutputTo oder einer der DoCmd.TransferXXX Befehle viel eaiser, um mit viel im langen Lauf.
Nicht sicher über den Zugang, aber die meisten anderen Office-Anwendungen haben eine
DisplayAlerts
Eigenschaft oder etwas ähnliches, so dass Sie tun könnenApplication.DisplayAlerts = False
bevor Sie Vorgänge, führen normalerweise zu einem dialog angezeigt.Vermeiden Sie doppelte Dateien, die ich in der Regel fügen Sie das Datum und die Uhrzeit an den Dateinamen an. Dies hat auch den Vorteil, dass der Anwender mehrere Versionen desselben Berichts.
Können Sie nun exportieren, Abfragen und Tabellen:
Abfrage in Excel 2007/2010-format (XLXS-format nur in Access2007/2010):
ExportToExcel "qrySupplierList", acOutputQuery, "D:\suppliers.xlsx", acFormatXLSX
Einer Tabelle in eine Text-Datei:
ExportToExcel "Suppliers", acOutputTable, "D:\suppliers.txt", acFormatTXT
Nun
TransferSpreadSheet
ist besser auf die übertragung von Tabellen in Excel, so können Sie es vorziehen zu verwenden, stattdessen:Eine Sie es wie diese:
Zu exportieren einer Tabelle in eine Excel97-format:
ExportTableToExcel "Supplier", "D:\Suppliers.xlx"
Zu exportieren, um XLSX-format (ab Access 2007/2010 nur):
ExportTableToExcel "Supplier", "D:\Suppliers.xlsx", acSpreadsheetTypeExcel12Xml