• 締切済み

accessのリンクテーブル

AというDBのAAテーブルをBというDBのBBテーブルとしてリンクしています。 B側では単にリストで見る程度でレコードを更新、追加、削除はしません。 クエリで絞り込んで集計程度はします。 このような使い方において、B側のDBを開いたままで A側で更新や追加等を行うと排他制御とかでひっかかったりしますか? よろしくお願いします。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

>B側では単にリストで見る程度でレコードを更新、追加、削除はしません >クエリで絞り込んで集計程度はします であれば、B側でロックは発生しませんので 『共有モード』で開いている場合には、 A側でのクエリ・テーブルなどでの更新・追加・削除は支障はありません。 B側で突然レコードが増えたり変更されたりDeletedになって B側の人が驚くくらいです。 ただ、実際には確実にデータが変更されるように、 排他でレコードをオープンしたり トランザクション処理を行う場合がありますから その場合には障害となります(A側でロックに失敗して出来ません)。 蛇足ですがB側でも変更などの可能性がある場合は、格段に難易度が上がります。 相当作りこまないと確実な運用ができません。 ネットワーク上での Access データベースの共有について (MDB) http://office.microsoft.com/ja-jp/access-help/HP005240860.aspx ネットワークでの使用 http://www.naboki.net/access/achell/achell-02.html

関連するQ&A

  • Accessの更新クエリについて質問です。

    よろしくお願いします。 集計したクエリを元に更新クエリを実行すると、更新できません。 やりたい作業としては、売上データテーブルのレコード数を得意先ごとにカウントして、得意先マスタテーブルのレコード件数フィールドを更新する作業です。 追加クエリで一度テーブルに追加してから、テーブル同士で更新も考えたんですが、レコード数が多いためにDBのサイズが爆発的に増えて廃案になりました。 何か良い方法があれば教えてください。

  • 異なる二つのテーブルの結合について・・・

    お世話になっております。 ちょっとややこしい質問になります。 「1」 Aと言うテーブルのAAと言うカラムから、$AAAと言うレコードを抽出致しました。ここまでは出来ました。(ここでの抽出結果を$CCCと致します。) 「2」 「1」の抽出結果($CCC)を元に、Bと言うテーブルのBBと言うカラムから、BBBと言うレコードも抽出し結合したいと考えております。 一番の問題は、「1」で出た結果(CCC)を元に、抽出する事が出来ません。 「1」のソースのみ完成してます。 $rs=$DB->query("SELECT * FROM `A` WHERE AA = '$AAA' ↑の抽出結果=$CCCを元に↓ $rs=$DB->query("SELECT * FROM `B` WHERE BB = '$CCC' 結合させたいんです!! セクションしているので結合できないとバラバラになってしまいます。。。。 ご教示お願い致します! inner join を使うのは分かるのですが・・・進めません。(泣)

    • ベストアンサー
    • MySQL
  • Access テーブル作成クエリについて

    お世話になります。 以下のようなテーブルがあります。 区分 コード AA  I001 AA  I002 AA  I003 BB  I004 BB  I005  ・   ・  ・   ・ FF  I012 例えば、フォーム上で数量「3」と入力され、「出力」ボタンが押されたときに、 上記のテーブルのレコードが3セットあるテーブルを作成したいと考えて おります。 区分 コード AA  I001 AA  I002  ・   ・  ・   ・ FF  I012 AA  I001 AA  I002  ・   ・  ・   ・ FF  I012 AA  I001 AA  I002  ・   ・  ・   ・ FF  I012 となるイメージです。 まっさらのテーブルを作成し、ループで回しつつレコードを追加していけば よいかと思うのですが、1回のテーブル作成クエリの実行で作成することは 可能でしょうか。 ※上記テーブルが出来たら、そのテーブルをソースとしたレポートでラベルを   印刷させます。 ご教授の程、宜しくお願い致します。

  • アクセスの追加クエリについて

    二つのテーブル間(AとB)を追加クエリを使い AからレコードをBに追加することは出来たんですが、 逆にBからAにレコードを追加しようと選択クエリを追加クエリに変更しようとしたんですが、ウィザードの追加先テーブル名にAのテーブル名が表れないですがその理由が全く分からないので分かる方教えていただけませんか? AとBのレコード内のフィールドは同じです。 AからBにレコードを移行する処理としてマクロを使いアクションとして ・クエリを開く(これは追加クエリです) ・SQLの実行(上と同じクエリを削除クエリに変更し、そのSQL文をSOLステートメントに貼り付けました) 上の処理は問題なく出来たので逆のBからAへレコード移行処理のマクロを作ろうとしたのですが、追加クエリの追加先テーブルにテーブルAの名前が出てこないので困っています。こういったAからB。BからAという処理は追加クエリで出来ないのでしょうか?

  • Microsoft Accessでどうしても上手くいきません。

    (1)テーブル作成クエリ クエリA で テーブルB を作ります。 (2)テーブルB にフィールドを一つ追加して、変更を保存 (3)テーブルB のレコードを削除 (4)クエリA を 追加クエリ に変更 で追加クエリAを実行すると、入力規則違反でレコードの追加ができません。 追加するフィールドは、オートナンバー型です。 以前は同様の作業で成功したんですけど・・・ すみません助けてください

  • AccessとDB2のテーブルリンクで…

    お世話になります。 ある2台のサーバーが社内にあります。 その2台のサーバーにはそれぞれ、IBMのDB2というデータベースを使用していて、それぞれのDB2内には同じデータベース名(テーブル)が存在します。 現在、サーバーAから新サーバーBに社内WEBシステムの移行を行っていて、Access2000のテーブルリンクを使って、サーバーAにあるDB2のデータベースAのテーブルとリンクをしています。 その際、テーブルリンクをする為にWindows2000の「ODBC データソース アドミニストレータ」のシステムDSNで、「IBM DB2 ODBC DRIVER」を使用してデータベースAにODBCを介して接続しております。 ですが、サーバーA側と同じ名前の、新サーバーBのデータベースAにODBCを介してテーブルリンクを繋ごうとすると、サーバーAと新サーバーBのデータベースAという名前が同じだからか、システムデータソースを追加しても、新サーバーB側のデータベースAに接続が出来ません。 この場合、新サーバーBのデータベースAの名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。

  • アクセスで重複するレコードを追加しない方法

    条件 Office97のアクセスを利用しています。 (会社のPCなので古いものしかありません) すでに作成されたデータベースがあります。 この中に、複数のテーブル・クエリ・他(フォームやマクロなど)があります。 分かる範囲でこのデータベースを触る許可はいただいています。 ただし、テーブルや保存の方法、データ型などの基本しかわからない初心者です。 状況 今回は、あるテーブルにデータを大量に追加したいと思っています。 その際、重複する(複数条件)データは追加しないようにしたいのです。 例えば、 【テーブルA】 オートナンバー   コード   場所   納場        001   AA001   東京    A           002   AA001   東京    B           003   AA001   東京    C           004   BB001   大阪    A           005   BB001   大阪    B    【テーブルB】             コード   場所   納場                AA001   東京    B                AA001   東京    C           → AA001   東京    D                  BB001   大阪    B 上記のテーブルが2つあり、テーブルAを元に、テーブルBのデータを追加する場合、 【テーブルA】 オートナンバー   コード   場所   納場        001   AA001   東京    A           002   AA001   東京    B           003   AA001   東京    C             AA001   東京    D           004   BB001   大阪    A           005   BB001   大阪    B というように表を更新したいと思っています。 上記の表のように「コード」が一致しても「納場」が一致しなければ追加を行いたいのです。 方法をご教授ください。

  • Accessでフォームからテーブルへ書き込む

    Access2000 (初心者) フォームからテーブルへ入力したいのですが、レコードソースが違う為入力出来ません。 DLookup("AA", "BB")で違うレコードから抽出出来る様に、違うレコードへ簡単に入力出来ないでしょうか? Me.CC = DLookup("AA", "BB") DLookup("AA", "BB") = Me.CC みたいに・・・

  • access クエリで集計した数値を別クエリで使いたい

    access2003で2000ファイル形式で以下のものを作っています。 テーブル「A」(フィールドは登録番号(主キー)、 書名) 「B」(登録番号(主キー)、 書名) がある。Aの「登録番号の最大値」(100とする)をクエリ(クエリ名「集計クエリ」)で集計して得た。 テーブルBの登録番号(1~30とする)を更新クエリで(1+100 ~ 30+100)に更新したい。そこでデザインビューで登録番号フィールド(テーブルB)の「レコードの更新」欄にビルダーで「[B]![登録番号]+[集計クエリ]![登録番号の最大値]」と入力して実行したら 実行できなかった。(仕方ないので「[B]![登録番号]+100」として実行したら更新できた。)今後もあるので「集計クエリ」で得た値を直接呼んで、更新クエリを実行したいのだが・・・。 わかりにくい質問で恐縮です。ご理解頂けたならば、ご教授ください。

  • アクセステーブル、リンクとローカルで違いはある?

    Access2003からSQLServerにリンクテーブルを張ったアプリケーションの作成をしています。 本番リリース時にはすべてのテーブルがリンクテーブルになる予定ですが 開発時にはローカルテーブルで開発をしたいと考えています。 理由は、DBにテスト用のゴミデータを追加したくないことと、 セキュリティの関係で接続出来るマシンが限られるためです。 現状の開発方法としては、 テーブルに一度リンクを張り、テーブル追加クエリでローカルにテーブル構造とデータを退避。 手動で主キーを定義して、そのテーブルを実体をみなして開発をしています。 SQLレベルではローカルテーブルもリンクテーブルも同等の扱いだと思っているのですが 何か制限事項などがあるのであれば教えていただきたいです。 なお、ACCESSからはDBを参照するのみで追加・更新は一切無しません。 追記。 クエリからクエリを参照して、さらにSQL内でサブクエリも記述しています。 その為、度々「クエリが複雑過ぎます。」みたいなメッセージが表示されています。 複雑というより無駄に長いだけだったりするのですが、 ローカルテーブルなら発行出来たのに、 リンクテーブルは発行出来ないなどあれば開発に支障が出ますのでよろしくお願いします。