tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルAccessのOpen処理
記事No14613
投稿日: 2010/04/07(Wed) 18:27
投稿者まっちん
いつも参考にさせて頂いています。

ただいまVB6のアプリケーションより、Access2003をOpenする処理を作成しています。
サンプルで前任者が作ったプログラムを頂いたのですが、1つ不可解な点がありました。

以下がその前任者がコーディングしたものになります。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Dim objOriginalMdb   As Object
Dim wsOriginalMdb    As DAO.Workspace
Dim dbOriginalMdb    As DAO.Database
Dim strMDBName       As String

strMDBName = "C:\Test.mdb"

Set objOriginalMdb = CreateObject("Access.Application")
objOriginalMdb.Visible = False
Set wsOriginalMdb = objOriginalMdb.DBEngine.Workspaces(0)
Set dbOriginalMdb = objOriginalMdb.DBEngine.OpenDatabase(strMDBName)
objOriginalMdb.OpenCurrentDatabase (strMDBName)
objOriginalMdb.Application.SetOption "Auto Compact", False
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

気になった点と言うのは「OpenDatabase」と「OpenCurrentDatabase 」と、
2回Open系の命令を行っているという点です。

私の方で少し調べた限り、どちらか1つで問題ないと思いました。
それとも、私の認識不足でVB6からAccessを開く時は前任者のコーディング通り
Openを2回行うものなのでしょうか?

特にエラー等は出ていないのですが、気になったので投稿致しました。

宜しくお願い致します。

[ツリー表示へ]
タイトルRe: AccessのOpen処理
記事No14616
投稿日: 2010/04/09(Fri) 11:10
投稿者るしぇ
DAO を普段使わないからよく分からないけど、
一方は Access 一方は DAO で、違う手法が混在している
のでは?だから、Access ライブラリでの接続命令と
DAO の接続命令が混在していると。
[外部 Jet データベースとの接続方法]※注 AccessVBA 基準のサイトです。
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGnrlHowToAttachExternalMdb.html

実行できることが違うので、それぞれ必要なのかもしれないし、
どちらかに全て置き換えられるのかもしれない。
DBEngine 経由で DAO の接続手順を実行したら Access で該当ファイルに
接続した事になるのか?また逆は?については情報を持ってないです。

どちらかの命令を削除して正常に動かなくなるのであれば、必要なのでは?

[ツリー表示へ]
タイトルRe^2: AccessのOpen処理
記事No14627
投稿日: 2010/04/13(Tue) 11:39
投稿者まっちん
るしぇ様 ありがとうございます。

> 実行できることが違うので、それぞれ必要なのかもしれないし、
> どちらかに全て置き換えられるのかもしれない。
> DBEngine 経由で DAO の接続手順を実行したら Access で該当ファイルに
> 接続した事になるのか?また逆は?については情報を持ってないです。
>
> どちらかの命令を削除して正常に動かなくなるのであれば、必要なのでは?

どちらを削除しても正常に動くのは確認しました。
暫くは様子を見て、何かあったら対応したいと思います。

教えていただいたHP、非常にためになりました。
ありがとうございます。

[ツリー表示へ]