テーブルの内容をエクスポートするための基本マクロを設定しました。マクロはうまく動作しますが、保存するファイル名が既に存在するかどうかを確認するチェックを作成したい場合は、そのファイルを削除して、プロンプトボックスを使用しないようにしますファイルを上書きするのが好きです。アクセスマクロVBAに変換してから編集のみアクセス定義コードを実行
マクロをVBAに変換して、目的のdir(ファイル名)とkill(ファイル名)コードを追加できるようにしました。完了したら、VBAエディタでコードを正常に実行することができましたが、アクセスしたフォームの「オン・クローズ」イベントに基づいてコードを実行しようとしたときに、アクセスで表示されたコードのみが実行されますあたかもVBAエディタで追加のコード行を追加したことがないかのように、私が編集を完了したら、VBAからAccessに戻すために私がやろうとしていたことはありますか? (私は、フォームからExportLotを呼び出すときに、現在実行されますどのような)
Function ExportLot()
On Error GoTo ExportLot_Err
Dim filename As String
filename = "\\server1\Trial
Database for QS Reports\Lot Log Report.xlsx"
DeleteFile (filename)
DoCmd.OutputTo acOutputQuery, "LLUnion", "ExcelWorkbook(*.xlsx)", filename, False, "", , acExportQualityPrint
ExportLot_Exit:
Exit Function
ExportLot_Err:
MsgBox Error$
Resume ExportLot_Exit
End Function
Function FileExists(ByVal FileToTest As String) As Boolean
FileExists = (Dir(FileToTest) <> "")
End Function
Sub DeleteFile(ByVal FileToDelete As String)
If FileExists(FileToDelete) Then 'See above
' First remove readonly attribute, if set
SetAttr FileToDelete, vbNormal
' Then delete the file
Kill FileToDelete
End If
End Sub
オリジナル変換されたコード:
私が実行したいコードは以下を参照してください
Function ExportLot()
On Error GoTo ExportLot_Err
Dim filename As String
DoCmd.OutputTo acOutputQuery, "LLUnion", "ExcelWorkbook(*.xlsx)","\\server1\Trial Database for QS Reports\Lot Log Report.xlsx", False,"", , acExportQualityPrint
ExportLot_Exit:
Exit Function
ExportLot_Err:
MsgBox Error$
Resume ExportLot_Exit
End Function
はあなたのcloseイベントには、新しいVBのコードにしていない元のマクロを参照することを確信していますか? –
@DonGeorge VBAコードと元のアクセスマクロの両方に同じ名前が付けられています。 Accessで作成された元のマクロとVBAで編集されたコードがリンクされていると誤っていますか? – Ian
推測を止めて、OnCloseイベントをマクロまたはVBAとして表示してください。次に、何が引き起こされているのかを知ることができます。 – Parfait