- PR -

VB2005で、Access2000のVBAを操作したい。

投稿者投稿内容
kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-24 15:05
更に、確認しましたが、word2003の場合、importしないとエラーになり、Access2000はimportしなくても
Dim oAccess As New Access.ApplicationClass
でエラーは出ませんでした。
oAccess.Visible = True
oAccess.OpenCurrentDatabase(path, False)
で、データベースも表示されました。
'Run the macros.
oAccess.Run("double_check_table1")
で、フォームを実行したいのですが、、
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-08-24 15:08
引用:

kojiro_i619さんの書き込み (2006-08-24 14:11) より:

修正前:Imports Access = Access
修正後:Imports Access1 = Access


もしこれでやるなら

コード:

Dim oAccess As Access1.ApplicationClass
oAccess = CreateObject("Access.Application")


じゃないですか?
そもそも、なんで同じ名前で別名を定義しているんでしょう。。。

[ メッセージ編集済み 編集者: かるあ 編集日時 2006-08-24 15:09 ]
kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-24 15:18
コード:
------------------------------------------------------------------------------
Imports Access1 = Access


Dim oAccess As Access1.ApplicationClass
oAccess = CreateObject("Access.Application")
---------------------------------------------------------------------------
はやってみました。
最後の行が、InvalidCastExceptionはハンドルされませんでした。とエラーです。



べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-24 15:32
引用:
'Run the macros.
oAccess.Run("double_check_table1")
で、フォームを実行したいのですが、、

さっきも似たようなこと書きましたが、これで「フォームを実行」できるってどこに書いてありました?
みたところどっかから丸コピーしてきたのかもしれませんが、コメントに「'Run the macros」って
書いてありますよね。。

私の思っている「フォーム」があっていれば、このページの「Access フォームを表示して編集する」の
ところにあるコードで
できそうですよ。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-24 15:38
引用:

kojiro_i619さんの書き込み (2006-08-24 15:18) より:

Dim oAccess As Access1.ApplicationClass
oAccess = CreateObject("Access.Application")
はやってみました。
最後の行が、InvalidCastExceptionはハンドルされませんでした。とエラーです。


太字書体のところを良く見てください。

そもそも、CreateObject を使う必要はないです。
New ApplicationClass で、コンパイル解決を図るべきです。

少しはご一考ください。
投稿時間を見るに、'考えている時間' がないように思えます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-24 16:00
引用:

kojiro_i619さんの書き込み (2006-08-24 14:50) より:
べるさんのご指摘のように
importしなくて、CreateObjectせずに、oAccess = New Access1.Application
でAccess2000が立ち上がりました。



としていますように、一応の解決を見ました。ありがとうございました。
先の回答は、かるあさんへのお返事です。

いま、Access2000のモジュールの実行を試みていますが、
oAccess.Run("acc_exe")
で、モジュールが無いとエラーになっているところです。

kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-24 16:02
引用:

kojiro_i619さんの書き込み (2006-08-24 14:50) より:
べるさんのご指摘のように
importしなくて、CreateObjectせずに、oAccess = New Access1.Application
でAccess2000が立ち上がりました。



としていますように、一応の解決を見ました。ありがとうございました。
先の回答は、かるあさんへのお返事です。

いま、Access2000のモジュールの実行を試みていますが、
oAccess.Run("acc_exe")
で、確かに、該当のdbにacc_exeという簡単なモジュールを設定しましたが、モジュールが無いとエラーになっているところです。

kojiro_i619
大ベテラン
会議室デビュー日: 2006/08/17
投稿数: 100
投稿日時: 2006-08-24 16:07
[quote]
べるさんの書き込み (2006-08-24 15:32) より:
引用:
'Run the macros.

私の思っている「フォーム」があっていれば、このページの「Access フォームを表示して編集する」の
ところにあるコードで
できそうですよ。


ありがとうございます。試してみます。m(__)m

スキルアップ/キャリアアップ(JOB@IT)