0

パラメーターを必要とするクエリから、マルコスを含む Excel テンプレートにデータを入力しようとしていますが、エラーが発生し続けます。フォームからパラメータを取得しています。ここに私のコードがあります:

Private Sub exportButton_Click()
Dim XL As Excel.Application
Dim wbTarget As Workbook

Dim qdfResults As QueryDef
Dim rsResults As Recordset

'Set up refernce to the query to export

Set qdfResults = CurrentDb.QueryDefs("MarksQuery")
qdfResults.Parameters("Forms!comp!competition") = Forms!comp!competition

'Execute Query
Set rsResults = qdfResults.OpenRecordset()


'reference excel
Set XL = CreateObject("Excel.Application")
'refernce workbook
Set wbTarget = XL.Workbooks.Open("C:\Users\user\Documen…\folder\resultTemplate.xltm")

'clear excel sheet
wbTarget.Worksheets("marktable").Cells.ClearContents

'paste data from query to worksheet
wbTarget.Worksheets("markTable").Cells(1, 1).CopyFromRecordSet rsResults

'save workbook
** 1) 'wbTarget.SaveAs ("C:\Users\user\Documents
\folder\resultTemplate1.xlsm") 
** 2) wbTarget.SaveAs FileName:="C:\Users\user\Documents\folder\resultTemplate1.xlsm",                                                            

FileFormat:=xlOpenXMLWorkbookMacroEnabled

'clear variables
Set wbTarget = Nothing
Set XL = Nothing
Set qdfResults = Nothing
End Sub

1) ワークブックにデータを取得できましたが、マクロなしで 2) データとマクロを取得できますが、適切に保存されません

助言がありますか?

編集** 正しく保存されないということは、保存できない一時ファイルを作成していることを意味し、今ではそれを作成することさえできず、0バイトでタイプのないファイルを作成しています

まだ自分の質問で答えることはできませんが、作業コードをここに表示できるまで:

私が見ることができる唯一の問題は、wbTarget.Close と XL.Quit が使用されていなかったため、モジュールがまだ実行されていたため、ファイルが完全に保存されず、一時的だったことです。@Gord Thompson の功績

Private Sub exportButton_Click()

Dim XL As Excel.Application, wbTarget As Workbook
Dim qdfResults As QueryDef
Dim rsResults As Recordset

Set XL = New Excel.Application
Set wbTarget =    XL.Workbooks.Open("C:\Users\user\Documents\folder\ResultsTemplate.xltm")

Set qdfResults = CurrentDb.QueryDefs("MarksQuery")
  qdfResults.Parameters("Forms!comp!competition") = Forms!comp!competition
Set rsResults = qdfResults.OpenRecordset()

wbTarget.Worksheets("markTable").Cells(1, 1).CopyFromRecordSet rsResults

wbTarget.SaveAs "C:\Users\user\Documents\folder\Results.xlsm", xlOpenXMLWorkbookMacroEnabled
wbTarget.Close
Set wbTarget = Nothing
XL.Quit


End Sub
4

2 に答える 2

1

私が見ることができる唯一の問題は、wbTarget.Close と XL.Quit が使用されていなかったため、モジュールがまだ実行されていたため、ファイルが完全に保存されず、一時的だったことです。@Gord Thompson の功績

Private Sub exportButton_Click()

Dim XL As Excel.Application, wbTarget As Workbook
Dim qdfResults As QueryDef
Dim rsResults As Recordset

Set XL = New Excel.Application
Set wbTarget =    XL.Workbooks.Open("C:\Users\user\Documents\folder\ResultsTemplate.xltm")

Set qdfResults = CurrentDb.QueryDefs("MarksQuery")
  qdfResults.Parameters("Forms!comp!competition") = Forms!comp!competition
Set rsResults = qdfResults.OpenRecordset()

wbTarget.Worksheets("markTable").Cells(1, 1).CopyFromRecordSet rsResults

wbTarget.SaveAs "C:\Users\user\Documents\folder\Results.xlsm", xlOpenXMLWorkbookMacroEnabled
wbTarget.Close
Set wbTarget = Nothing
XL.Quit


End Sub
于 2013-11-13T00:03:06.030 に答える