-PR-
解決済み

Access&VB

  • 困ってます
  • 質問No.37226
  • 閲覧数558
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 59% (28/47)

2つほど質問があるのですが、
1.VBからDAOでパスワードがかかっているACCESSに接続する場合に引数はどのように設定したらよいのでしょうか?
2.ACCESSでクエリーを作成し、そのクエリーの結果をエクセルにエクスポートするという処理をやります。
このときクエリーはパラメータを要求します。どこかのタイミングでパラメータをわたせないでしょうか?

具体的にはこんな感じです。

Dim objDb As Object
Dim appAccess As Object

Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase "パス名\Memo.mdb"
appAccess.DoCmd.TransferSpreadsheet 1, 8,"クエリー名","パス名.xls", False,""
もしくは、
appAccess.DoCmd.RunMacro "マクロ名"
(マクロの中身は「TransferSpreadsheet」)

分りにくい説明ですが、よろしくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル11

ベストアンサー率 49% (139/279)

その後解決しましたでしょうか?

お休みになったので、ちょっと実験してみました。
ちゃんとできましたので、報告しておきます。

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

お礼率 59% (28/47)

いろいろとありがとうございました。ちょっとやってみます。
投稿日時 - 2001-02-14 11:47:14
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 49% (139/279)

1については、下記のURLを参照してください。

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

お礼率 59% (28/47)

1については解決しました。ありがとうございました。

2について、arataさんが言われている"フォーム"とはaccessのフォームのことでしょうか?
VBのフォーム上のテキストボックスの値をクエリーが要求する引数として渡したいのですが、やっぱりそんなことはできないのでしょうか?
投稿日時 - 2001-02-07 15:56:37


  • 回答No.2
レベル11

ベストアンサー率 49% (139/279)

そうです。

1.Accessでテーブルと連結していないフォームを作って、パラメータクエリーのパラメータは、フォームのテキストボックスを参照するようにしておく。

2.実行時には、VBのコントロールにより、Accessのフォームを開き、フォームのテキストボックスにVBのテキストボックスの値を入れる。

3.TransferSpreadsheetを行う

とすると解決するような気がするのですが、うまくいくかどうかは、試していないので、わかりません。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ