|
こんばんは、YU-TANG です。
> appAcc.Run "make_add_mdb", tg_date
>
> としているのですが
>
>
> B.mdbで
>
> どのように引数を受け取ればよいでしょうか
>
>
> Public tg_date As Integer
>
> Public Sub make_add_mdb()
Run メソッドのヘルプはお読みになりましたか?
ht tp://msdn.microsoft.com/ja-jp/library/cc358719.aspx
ヘルプに使用例が出ているので、それを見ればお分かりになると
思いますが、Run メソッドの第二引数以降は呼び出される側の
関数の仮引数に渡されます(パブリック変数に渡されるわけでは
ありません)。したがって、呼び出される側の関数頭部で対応する
仮引数が宣言されていないと、Run メソッドで値を渡しても受取人が
誰も居ない状態になります(今がその状態です)。
ヘルプを参考に正しく記述すれば、引数の受け渡しは簡単にできると
思います。
> SQL = "SELECT tb_master.* INTO tb_master_add " _
> & "IN 'D:\my_fd\my_dt_recadd.mdb' " _
> & "FROM tb_master WHERE (((tb_master.更新時)>=Date()-tg_date));"
>
> DoCmd.RunSQL SQL
>
> ・・・・・
>
> のようにしていますが
> パラメータの入力ダイアログが表示されてしまいます
これは Run メソッドとはまったく別の理由です。
SQL 文を実行するのは JET データベースエンジンですが、JET は
Access VBA の変数を認識しません。したがって、SQL 文中の識別子
tg_date は JET にとって未定義ですから、パラメータとして
取り扱われます。
Run メソッドを正しく使えば変数の受け渡しができているはずですから、
JET 側に変数を参照させるような(そもそも不可能な)真似をさせずとも、
SQL 文自体に実数値で埋め込めば事足りるのではないでしょうか。
それでは。
|
|