-PR-
解決済み

Accessのリンクテーブル

  • すぐに回答を!
  • 質問No.6782
  • 閲覧数395
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 30% (3/10)

すみません、教えてください。
Accessで複数端末から一つのMDBにデータ登録をさせる為に、VBAでツールを作っています。以下のように記述をして
いるのですが、MDBを閉じるたびに、リンク先のDBを認識しなくなってしまいます。テーブルでリンクを貼りなおすとまた動くようになるのですが、どうしたらリンクを貼りなおせずにできるようになるのか、どなたか教えてください。どうかお願いいたします。

Dim LinkDB as Database
Dim RST AS Recordset

Set LinkDB = WorkSpaces(0).OpenDatabase("リンク先のDBの名前")
Set RST = LinkDB.OpenRecordset("テーブル名",DbOpenTable)
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル13

ベストアンサー率 46% (643/1383)

パス名は正しく設定していますか?

Set LinkDB = Workspaces(0).OpenDatabase("\\Server1\...\Database.MDB", False)
のような形にすると、うまく動くとかもしれません。

また、Tableタイプのレコードセットは、EditやUpdateを行っている間、該当のレコード及び付近の2Kバイトの領域をロックします。
もしかしたら、他のユーザーがロックしているレコードにアクセスしようとして、処理が失敗するのかもしれません。
お礼コメント
suzuking

お礼率 30% (3/10)

回答頂きまして有難うございました。
パス名の設定でうまくいきました。
そのあとのレコードロックも発生したので非常に助かりました。回答して頂いた御二方、本当に有難うございました。
投稿日時 - 0000-00-00 00:00:00
関連するQ&A
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル3

ベストアンサー率 0% (0/2)

Dim MYWS As Workspace Dim ANOTHERDB As Database Set MYWS = DBEngine(0) Set ANOTHERDB = MYWS.OpenDatabase("リンク先のDBの名前") としてみてください。 私の行っている処理ではRecordsetオブジェクトは使っていませんが、上記の記述の後、TabledefのDe ...続きを読む
Dim MYWS As Workspace
Dim ANOTHERDB As Database

Set MYWS = DBEngine(0)
Set ANOTHERDB = MYWS.OpenDatabase("リンク先のDBの名前")

としてみてください。
私の行っている処理ではRecordsetオブジェクトは使っていませんが、上記の記述の後、TabledefのDeleteをしています。何事もなく毎週動いています。


このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

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

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ