Accessのリンクテーブルの自動更新・一括更新の方法について
- バックエンドとフロントエンドでのデータベースを作成中の際に、リンクテーブルのパスの変更に困っています。自宅と会社のPCで作成しているため、リンクテーブルの自動更新方法や一括更新方法を教えていただきたいです。
- 他のサイトで一つのテーブルをボタンで更新する方法を見つけましたが、複数テーブルを一挙に更新させる方法は分かりません。テーブル数が現在決まっておらず、今後増える予定です。
- 参考サイトやソースコードを教えていただけると助かります。どうぞよろしくお願いいたします。m(_ _)m
- ベストアンサー
Accessのリンクテーブルについて質問です。
Accessのリンクテーブルについて質問です。 この度、バックエンドとフロントエンドでのデータベースを作っています。 フロントエンドを会社のPC10台程度で利用しようと考えています。 ただ、作成するのが、自宅のPCと会社のPCで作っているのですが、 リンクテーブルのパスが変わってしまい、非常に困っています。 現在は自宅でデータ系を作成し、会社でフォーム等見た目に関するものを作っている次第です。 リンクテーブルを自動更新させる方法、または、ボタンで全てのリンクテーブルを更新させる方法はないでしょうか? 一つのテーブルをボタンで更新させる方法は、他サイトで見つけたのですが、複数テーブルを一挙に更新させる方法が見当たりません。 また、面倒な話なのですが、テーブル数は現在決まっておらず、今後増える予定です。(現在は7つ。) 出来れば参考サイトやソースコードを教えていただけると、非常に助かります。 何卒よろしくお願いいたします。m(_ _)m
- abuhiro
- お礼率51% (97/190)
- その他(プログラミング・開発)
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Access2003であれば、下記コードで すべてのリンクテーブルのパスを変更 できるハズです。 Sub test() On Error GoTo Err_test Dim strFile As String Dim intResult As Integer Dim tb As DAO.TableDef Const ENABLE_WIZHOOK = 51488399 Const DISABLE_WIZHOOK = 0 WizHook.Key = ENABLE_WIZHOOK intResult = WizHook.GetFileName(0, "", "データベースを指定して下さい", "" _ , strFile, "", "mdbファイル (*.mdb)|*.mdb", 0, 0, 0, True) WizHook.Key = DISABLE_WIZHOOK If strFile = "" Then Exit Sub For Each tb In CurrentDb.TableDefs If tb.Connect <> "" And tb.Connect <> ";DATABASE=" & strFile Then tb.Connect = ";DATABASE=" & strFile tb.RefreshLink End If Next tb MsgBox "リンク更新が正常に終了しました", vbInformation Exit Sub Err_test: MsgBox Err.Description, 16 End Sub
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
こちらが最適かと。 http://www.nurs.or.jp/~ppoy/access/access/acM020.html マイクロソフトにもありますが。 http://support.microsoft.com/kb/291264/ja では。
お礼
非常に参考になりました。 今後の参考にさせていただきます。m(_ _)m
関連するQ&A
- Accessのテーブルのリンクについて
Access2002で、異なるファイル間でテーブルをリンクして使用しています。 「A」データベースと「B」データベースがあり、 「A」データベースのテーブルを「B」データベースへリンクさせています。 「B」には「A」からリンクさせているテーブルと同一の形式のテーブルがあり、 普段は「B」所有のテーブルを使用しているのですが、「保存」ボタンクリック時に 「A」からリンクさせているテーブルに「B」の内容をコピーするマクロを作成したいのですが、 値の代入がうまく行きません。 どうすればデータをコピーできるでしょうか。
- ベストアンサー
- オフィス系ソフト
- リンクテーブルについて
ACCESS2003を使用しています。 test.mdbに保存されていたテーブル1、テーブル2を データーベース分割ツールでtest_be.ldbにリンクテーブルしました。 その後にテーブル3を作成したのですがこれもtest_be.ldbに追加で移動しリンクテーブルにしたいのですがどうすればいいのかわかりません。 「データーベース分割ツール」→「バックエンドデータベースの作成」となるのですがこれに上書きしてもいいのでしょうか? またリンクテーブルマネージャーを見ても新しいテーブル3は表示されません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- AccessとSqlServerのテーブルリンク
Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。
- ベストアンサー
- SQL Server
- Access97のリンクテーブルについて
Access97で作成したデータベースを元のPCから別のPCへ移動させようと思っています。 ところが、そのデータベースのテーブルの多くがリンクテーブルとなっており リンク先がフロッピィディスク(データ移動用)になっています。 ちなみにこのFDにはSEQファイルというのが保存されているのですが、 どのように関連付ければデータベースごと移動できるのでしょうか? 担当者が辞めてしまって二進も三進もいかず困っています・・・ あとデータベースの内容等の参照・変更をするためにユーザーアカウントがありますがどこからそのアカウントを入力してやればいいのでしょうか? 普段はAccessを起動させると勝手に入力画面にジャンプするので・・・
- 締切済み
- オフィス系ソフト
- MS-Accessのリンクテーブルで更新
MS-Accessのリンクテーブルで更新 MS-Accessのリンクテーブルを使用して、 Oracleデータベースの表に対して 値の更新をしようとしていますが、 更新が競合しているというメッセージが出て、 更新できません。 また、値の更新をしようとしているタイミングで、 Oracleデータベース側のリンクテーブル対象表に アクセスしている処理はなく、 更新が競合していることありません。 ODBCドライバの設定では、読み取り専用設定は 実施してない点は確認しています。 使用しているソフトウェアの各バージョンは以下になります。 Access 2007 Oracle 10.2.0.4.0 WindowsXP SP3 ODBCドライバ 10.02.00.01 リンクテーブルからの更新自体がそもそも出来ないのでしょうか? MS-Accessを使用してOracleデータベースの表の値を更新したいと思っているのですが、 解決方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?
- 締切済み
- その他([技術者向] コンピューター)
- Accessのリンクテーブルについて
Access2000を使用しているのですが、SQLServerのDBをリンクしなければいけないのですが、ODBCを使用せずにリンクさせる方法はあるのでしょうか? またはモジュールでコードを記述してリンクテーブルを作成する方法でもかまわないのですが・・・。 作成したAccessを配布したPCにODBCを設定するのが面倒なのですが・・・。 なにかいい方法があるのか教えていただきたいです。
- ベストアンサー
- オフィス系ソフト
- Access2010のリンクテーブルについて
Access2010のリンクテーブルについて質問をさせてください。 現在、社内ではExcelシートで対応ログを残しています。 ログ入力や検索のことを考えれば、Accessへ移行するべきだと思うのですが、現在その予定はありません。また、ここで対応内容に応じて「区分」を付加していきたいと考え、以下のことを行いました。 1.ExcelシートをリンクテーブルとしてAccessに取り込み。 [対応テーブル] ・対応NO ・対応内容 2.今後加えていきたい区分のテーブルを作成 [区分マスタ] ・区分NO ・区分名 3.AccessでExcelシートは更新できないので、1と2をもとにしたテーブルを作成 [対応明細] ・対応明細NO ・対応NO(1と結合) ・区分NO(2と結合) 3.のテーブルに対し、「対応NO」と「区分NO」を入力していければ、もともとのExcelファイルをいじることなく、区分を追加していけるものと考えたのですが、「このレコードセットは更新できません。」とのエラーとなってしまいます。 以前のAccessではExcelのリンクテーブルも更新できたと思うのですが、大人の事情でそれができなくなったことは認識しています。その回避策として、リンクテーブルに編集を加えるのではなく、更新用のテーブルを用意して入力していこうと思ったのですが、それもできません。 回避策がありましたらご教示いただけますでしょうか。 宜しくお願いいたします。
- ベストアンサー
- その他MS Office製品
- リンクテーブルのようなものは?
ACCESSのリンクテーブルのような機能は、SQL Server 2000にあるのでしょうか? SQL Serverに作成したデータベースAとBがあり、AにあるテーブルをBから参照更新したりすることはできるのでしょうか? 具体的にはどのようなものになるのでしょうか? 初歩的な質問で申し訳ありませんが、何卒、よろしくお願いします。
- ベストアンサー
- SQL Server
- アクセスのテーブルにリンクできなくしたい
アクセス97です。 DBのテーブルを見れないようにはできたのですが、 他に別のDBを作成し、元のDBのテーブルにリンクしてしまうと いともたやすくテーブルを見ることができてしまいます。 元のDBには、パスワードやグループファイルで権限を付けたくないです。 テーブルのリンクを許さない方法が何か無いでしょうか? また、テーブルが誰かによってリンクされているかどうかが 分かる方法ってあるでしょうか? よろしくお願い致します。
- 締切済み
- その他(データベース)
- テーブル作成クエリとデータベースの分割
当方、Accessは全くの素人ですが、急遽Accessにて連絡先台帳を 作ることとなりました。 参考書を片手に、なんとかそれ相応のものになってきましたが、 表題部分にて四苦八苦しております。 どうぞ、ご教授のほどよろしくお願いします。 まず、連絡先テーブルを作成しました。 この中には個人名、会社名、住所などを入力するようにしました。 会社名の中には複数のレコードがあるため、個人向けではなく、会社向けの 送付用のラベルを作成したいと思い、テーブル作成クエリを用いて 会社テーブルを作成しました。 上記テーブルから、ラベル作成までは何とかできるようになりましたが、 複数のユーザーがこのデータベースを使うため、データベースの分割をし 運用したいのです。 また、この会社テーブルを別のデータベースでも使用したいと思っております。 ツールを用いて、データベースの分割はできましたが、新たな連絡先が 追加されたときなど、再度テーブル作成クエリを実行してしまうと、リンクが 外れてしまいます。 外部データからリンクテーブルを作りなおすと、以前のデータのままなので、 分割したデータベースを更新しなければならないことはわかりましたが、 その方法が全くわかりません。 できれば、更新ボタンを押した際に、 テーブル作成クエリを起動して、テーブルを作成し、分割したデータベースを 更新させたいのですが、何か良い方法はございませんでしょうか? 他の方法でも全く問題ありません。 VBAやマクロでも構いません。 ただ、VBAもマクロも殆どわかりませんので、できればコード等を記載して いただけると助かります。 Access2007を用いております。 どうぞよろしくお願いします。
- 締切済み
- オフィス系ソフト
お礼
非常にわかりやすいソースありがとうございます。 読解できました。 いじる所も全くないのでこのまま利用させていただきます。 本当にありがとうございました。m(_ _)m