※ ChatGPTを利用し、要約された質問です(原文:ACCESS2003で改修依頼管理ツールを作成しています。)
ACCESS2003で改修依頼管理ツールを作成
このQ&Aのポイント
ACCESS2003の改修依頼管理ツールを作成しています。回答票の出力時に同名ファイルが存在するとエラーが発生するため、回避方法を知りたいです。
現在、ACCESS2003で改修依頼管理ツールを作成しています。回答票テンプレートを使用してデータをコピーして保存する際、同名ファイルが存在するとエラーが出てしまいます。解決方法を教えていただけないでしょうか。
ACCESS2003で改修依頼管理ツールを作成中です。回答票のテンプレートを使用してデータをコピーして保存することで回答票を作成していますが、同名ファイルが存在する場合にエラーが発生します。回避方法を教えてください。
ACCESS2003で改修依頼管理ツールを作成しています。
ACCESS2003で改修依頼管理ツールを作成しています。
改修依頼用の回答票を出力する際のことなんですが、
現在、回答票テンプレートをあらかじめ同フォルダ内に保存していて、
それをExcelAppで開き、回答内容テーブルのデータをそのままコピーして名前をつけて保存しています。
しかし、その方法だとすでに同じ名前のファイルが存在していると名前をつけて保存する際に、同ファイルにアクセスできませんとエラーが出ます。
デバッグしてみるとどうやらテンプレートを開く際に読取専用で開かれており、
それを編集して別名で保存しているため、作成したファイルも読取専用ファイルになっているため
2回目以降に同名で出力する際に同ファイルにアクセスできなくなっているのだと思います。
これを回避する方法を知っている方がいれば是非教えていただきたいです。
コードを見ていただくわかると思いますが保存名の定義が部署名&発行日付のため1日に2回以上同じ部署の回答票を発行する際に困っています。
一応コードも載せておきます。
'On Error GoTo Err_コマンド0_Click
Dim xlApp As Object
Dim xlBook As Object
Dim strMDBPATH As String 'MDBの保存場所、フォルダー・ディレクトリ
Dim strXLSFILE As String 'テンプレートファイルの名前、e:\xxx\yyyy\テンプレート.xls
Dim strSaveFile As String
strMDBPATH = GetCrtPath
'Excelの元ファイルの名前を作成 D:\xxxx\yyyy\ + テンプレート.xls
strXLSFILE = strMDBPATH & "回答票テンプレ.xls"
'変数にエクセルアプリケーションをセットして開く
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(FileName:=strXLSFILE, ReadOnly:=False)
xlApp.Visible = True
'回答票テンプレを開く
' xlApp.Workbooks.Open FileName:=strXLSFILE
'回答票に回答内容をコピーする
xlApp.Range("C10") = Me!起票日.Value
xlApp.Range("H10") = Me!所属部門.Value
xlApp.Range("P10") = Me!起票社員番号.Value
xlApp.Range("T10") = Me!起票社員名.Value
xlApp.Range("C17") = Me!対象システム.Value
xlApp.Range("K17") = Me!処理区分.Value
xlApp.Range("P17") = Me!対象画面.Value
xlApp.Range("C21") = Me!改修内容.Value
xlApp.Range("C38") = Me!回答日.Value
xlApp.Range("I38") = Me!回答社員名.Value
xlApp.Range("C43") = Me!回答内容.Value
'ファイル名に所属部門と回答日を付加する
strSaveFile = "回答票_" & Me!所属部門 & "_" & Format(Me!起票日, "yyyymmdd") & ".xls"
'名前を変更して保存
xlBook.SaveAs FileName:=strMDBPATH & strSaveFile
'テンプレートを終了
' xlApp.Quit
'オブジェクトの開放
Set xlApp = Nothing
Set xlBook = Nothing
MsgBox "回答票を発行しました。", vbInformation
Exit_コマンド0_Click:
Exit Sub
Err_コマンド0_Click:
MsgBox Err.Description
Resume Exit_コマンド0_Click
End Sub
お礼
ご回答ありがとうございます。 確かに前にも同じような質問していました。 間が空いてしまい忘れてしまいました。 無事解決できました。 ありがとうございます。