• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access&VB)

Access&VBの質問について

このQ&Aのポイント
  • VBからDAOでパスワードがかかっているACCESSに接続する際の引数の設定方法について質問です。
  • ACCESSでクエリーを作成し、その結果をエクセルにエクスポートする処理において、パラメータの設定方法について質問です。
  • VBとAccessの連携について、具体的なコード例と共に説明をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.3

その後解決しましたでしょうか? お休みになったので、ちょっと実験してみました。 ちゃんとできましたので、報告しておきます。 Dim objAccess As Access.Application Set objAccess = CreateObject("Access.Application") objAccess.OpenCurrentDatabase "C:\TEST.MDB" objAccess.DoCmd.OpenForm "FORM2", acNormal objAccess.Forms("FORM2")![個数].Value = 200 objAccess.DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Q1", "C:\TEST1.XLS" objAccess.DoCmd.Close acForm, "FORM2" objAccess.CloseCurrentDatabase objAccess.Quit パラメータを渡すためだけに作ったフォームがFORM2で、FORM2に[個数]と言うテキストボックスを配置しました。 パラメータクエリーQ1のパラメータの部分は>[Forms]![FORM2]![個数]という感じで、フォームの[個数]を参照するようにしてあります。 FORM2を開いて、テキストボックス[個数]に値を入れてから、TranserSpreadSheetをするようにしました。

zima_id
質問者

お礼

いろいろとありがとうございました。ちょっとやってみます。

その他の回答 (2)

  • arata
  • ベストアンサー率49% (139/279)
回答No.2

そうです。 1.Accessでテーブルと連結していないフォームを作って、パラメータクエリーのパラメータは、フォームのテキストボックスを参照するようにしておく。 2.実行時には、VBのコントロールにより、Accessのフォームを開き、フォームのテキストボックスにVBのテキストボックスの値を入れる。 3.TransferSpreadsheetを行う とすると解決するような気がするのですが、うまくいくかどうかは、試していないので、わかりません。

  • arata
  • ベストアンサー率49% (139/279)
回答No.1

1については、下記のURLを参照してください。 2については、試したわけではないので自信はありませんが、パラメータクエリーのパラメータをフォームのテキストボックスを参照するようにして、マクロやモジュールで、フォームのテキストボックスに値を入れておけば、聞かれないのではないかと思うのですが。

参考URL:
http://www.microsoft.com/japan/support/kb/articles/J029/1/72.htm
zima_id
質問者

補足

1については解決しました。ありがとうございました。 2について、arataさんが言われている"フォーム"とはaccessのフォームのことでしょうか? VBのフォーム上のテキストボックスの値をクエリーが要求する引数として渡したいのですが、やっぱりそんなことはできないのでしょうか?