Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : Access 2003)
Select Case〜とExcelエクスポート併用A
投稿日時: 19/04/10 18:19:23
投稿者: namidaneko

先日表題の件で質問させていただいたものです。
 
アドバイスいただいた通りに実践してみたのですが、
データが抽出されず空のファイルができてしまうだけでした。
(ラベルは出来るのですが、クエリのデータが抽出されませんでした。)
 
申し訳ございませんが、
再度ご教示いただけないでしょうか。
 
エラー3027
”データベースまたオブジェクトは読み取り専用なので、更新できません。”
 
フォーム内、フレームの中にコマンドボタンがあり、
コマンドボタンの1を選んで検索を押すと、
”Q_クエリ名1",をからデータを探し、Excelにエクスポートできるようにしたいです。
2の場合は、、”Q_クエリ名2",からデータを探し、エクスポートしたいです。
 
 
構文
Private Sub コマンドxxx_Click()
 
Select Case フレームxxx.Value
 Case 1:
 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Q_クエリ名1", "Excelファイル名.xlsx"
 Case 2:
 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "Q_クエリ名2", "Excelファイル名2.xlsx"
 
  Case Else
  MsgBox "データが存在しません"
  End Select
 
End Sub
 
 
Excelのバージョンは2010です。
 
何度もすみません、
原因がわからず困っております。
お力かしていただけないでしょうか。
よろしくお願いいたします。

回答
投稿日時: 19/04/11 07:44:00
投稿者: Suzu

Q_クエリ名1、Q_クエリ名2 それぞれの SQL を提示ください。

回答
投稿日時: 19/04/11 11:50:53
投稿者: Suzu

引用:
エラー3027
”データベースまたオブジェクトは読み取り専用なので、更新できません。”

 
なんか変なメッセージと思って調べたら
 
Access でファイルのインポートまたはエクスポートを実行すると、読み取り専用のエラーが発生する場合がある
https://support.microsoft.com/ja-jp/help/436329
 
がありましたね。
 
ファイル名はフルパス拡張子付で指定しているのでしょうか?
上記は、基本テキストファイルについての情報なのですが、
 
Excelでも同様ですね。。2003はサポートも切れているので、公式情報は消えています。
引用:
レジストリで
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Excel
キー項目: DisabledExtensionsの値を「!xls,dat」とすればエラーにはならないでしょう。

 
という情報がWEB検索で得られました。

投稿日時: 19/04/12 15:17:03
投稿者: namidaneko

コメントありがとうございます。
しかし、やはり3027のエラーになってしまいました…。
 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "クエリ名1", "クエリ名2".!xls,dat"
 
原因がまったくわかりません…。

投稿日時: 19/04/12 15:25:03
投稿者: namidaneko

わからないので、こちらの件はあきらめることにしました。
回答いただいたSuzu様ありがとうございました。