ワークスペースは1つでもだいじょぶ?


スミセイ  2004-06-24 18:52:55  No: 114267  IP: [192.*.*.*]

VBからACCESSへの接続で
1つワークスペースを定義して、
2つのデータベースでそのワークスペースを使ったところどちらも開くことができたのですが,
こんな感じで↓
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(データベース名)
Set Ndb = ws.OpenDatabase(データベース名)
やめておいたほうがいいですか?
それとももう1こくらいデータベース開いてもだいじょぶですか?
変な質問ですみません。

編集 削除
魔界の仮面弁士  2004-06-24 21:05:41  No: 114268  IP: [192.*.*.*]

> 2つのデータベースでそのワークスペースを使ったところどちらも開くことができたのですが,

そういう運用もありますよね。

複数のmdbを同一のトランザクションで扱いたい場合は、
同じWorkspace上で開く事ができます。

逆に、1つのmdbを複数のWorkspace上で開くようなケースも稀にあります。
(ユーザーやグループ別に、権限が細かく設定されている場合とか)

> それとももう1こくらいデータベース開いてもだいじょぶですか?
別に構わないと思いますが、ワークスペースを意識したコーディングにするなら、
既定のワークスペースを使うのではなく、きちんとCreateWorkspace()した方が良いかと。

編集 削除
スミセイ  2004-06-24 21:58:18  No: 114269  IP: [192.*.*.*]

魔界の仮面弁士さん、ありがとうございます。

魔界の仮面弁士さんの発言で
> ワークスペースを意識した
とありますが、意識するのはどんな場合でしょう?
それと、CreateWorkspace()の意味、使い方を教えて下さい。
今VBがある環境ではないもので(^^;

編集 削除
魔界の仮面弁士  2004-06-24 23:47:19  No: 114270  IP: [192.*.*.*]

> 意識するのはどんな場合でしょう?
「意識する」と書いたのは、特に深い意図はありません。(^^;

初心者の方ですと、Workspaceの存在を意識せず、直接OpenDatabaseを呼び出している方もおられますが、スミセイさんは、Workspaceを一つだけにするか、それとも、分けるべきか、と悩んでいたようなので、Workspaceを意識しているのだなぁ、と思っただけです。

で。
複数のmdbを同時に使うときに、意図的にWorkspaceを使い分けるべきかどうかについては、先の回答を参照してください。ただ、トランザクションやセキュリティ等を気にしないのであれば、同一のWorkspaceでも複数のWorkspaceでも、大差は無いと思います。

> それと、CreateWorkspace()の意味、使い方を教えて下さい。
> 今VBがある環境ではないもので(^^;
せっかく教えても、試せる環境に無ければ理解しにくいと思いますので、VBのある環境に戻ってから、実際に試しながら調べてみて下さい。
(それでも良く分からないようであれば、あらためて再質問してください)

なお使い方に付いては、google等で検索すると、具体的なコードが見つかりますよ。

編集 削除
スミセイ  2004-06-25 09:34:52  No: 114271  IP: [192.*.*.*]

すみませんCreateWorkspace()についてもう一度質問させて下さい。
ヘルプにて

Set workspace = CreateWorkspace(name, user, password, type)
    (1)                         (2)   (3)   (4)

と載っていたのですが、
(1)workspaceはワークスペース自体の名前でいいんですよね?
(2),(3)一意な名前?所有者を示す?意味がわかりません(*_*)
(4)なんでもいいんですか?
よろしくお願いします。

編集 削除
スミセイ  2004-06-25 09:35:54  No: 114272  IP: [192.*.*.*]

ずれました!
(1)workspace
(2)name
(3)user
(4)password
です

編集 削除