後述のコードの問題点を教えてください。宜しくお願い致します。
この部分でエラーが出ます。
VBA
1DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, _ 2 varAc, varXls, True
エラーの内容は次の通りで、エクスポートすることができません。
「3011 : オブジェクト 'Q_児童名簿(地区・コード)' が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。'Q_児童名簿(地区・コード)' がローカル オブジェクトでない場合は、ネットワークの接続を確認するか、サーバー管理者に問い合わせてください。」
###試したこと・確認したこと
- Acceessのクエリ「Q_児童名簿(地区・コード)」が存在していて、Accessでは実行できていること。
- 出力先のExcelファイルをxls形式にして、acSpreadsheetTypeExcel9にするとエクスポートできる。
VBA
1Public Sub 児童名簿_地区別_出力() 2 3 Dim objExcel As Excel.Application 4 Set objExcel = New Excel.Application 5 Dim objWb As Excel.Workbook 6 7 Dim varXls As Variant 8 Dim varAc As Variant 9 10 varXls = Application.CurrentProject.Path & "\temp\" & "児童名簿(地区別).xlsm" 11 varAc = "Q_児童名簿(地区・コード)" 12 13 Set objWb = objExcel.Workbooks.Open(FileName:=varXls, ReadOnly:=False, _ 14 Password:=PASSWORD_STRING) 15 16 17 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, _ 18 varAc, varXls, True 19 20 objWb.Save 21 objWb.Close 22 Set objWb = Nothing 23 objExcel.Quit 24 Set objExcel = Nothing 25 26End Sub
こちらのコードでは理想の動きをしました。理由は判りません。
VBA
1Public Sub 児童名簿_地区別_出力() 2 3 Dim objExcel As Excel.Application 4 Set objExcel = New Excel.Application 5 Dim objWb As Excel.Workbook 6 7 Dim varXls As Variant 8 Dim varAc As Variant 9 10 varXls = Application.CurrentProject.Path & "\temp\" & "児童名簿(地区別).xls" 11 varAc = "Q_児童名簿(地区・コード)" 12 13 Set objWb = objExcel.Workbooks.Open(FileName:=varXls, ReadOnly:=False, _ 14 PASSWORD:=PASSWORD_STRING) 15 16 objWb.PASSWORD = "" 17 objWb.Save 18 objWb.Close 19 Set objWb = Nothing 20 21 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _ 22 varAc, varXls, True 23 24 Set objWb = objExcel.Workbooks.Open(FileName:=varXls, ReadOnly:=False, _ 25 PASSWORD:="") 26 objWb.PASSWORD = PASSWORD_STRING 27 objWb.Save 28 objExcel.Quit 29 Set objWb = Nothing 30 31 Set objExcel = Nothing 32 33End Sub

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。