• ベストアンサー

ACCESSでデータとフォームを分ける

ACCESSでテーブルとフォームなどを分けて2つのファイルにして、システムメンテナンス時にはフォーム側だけファイルを上書きすればよいという運用方法を聞いたことがあるのですが可能なのでしょうか? 可能であればどのような機能・名称なのでしょうか? ※バージョンによってできるできないがあるかなど

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8512/19351)
回答No.1

>可能なのでしょうか? 可能です。 「データ(テーブル)が入ったmdbファイル」と「フォームやクエリが入ったmdbファイル」の二つに分けて、フォームやクエリが入ったmdbファイルの方から「テーブルのリンク」を行ないます。 以下は、Access97の例ですが、他のバージョンでも同じように「テーブルのリンク」ができます。 http://www.mahoutsukaino.com/ac/ac97/basic/gaibu5.htm 「リンクした方」は「テーブルの実体は外部の別ファイルにありますよ」と言う情報だけ記録され、アクセス(読み書き)した場合、実体ファイルに読み書きします。 「リンクされた方」は「単なるテーブルだけが入って居るmdb」になります。

Not_Pro
質問者

お礼

画面の(例)まであり助かりました。

その他の回答 (1)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.2
Not_Pro
質問者

お礼

回答ありがとうございました。参考になりました。

関連するQ&A

  • Access2007:フォームからに誤って上書きして元のデータが消えてしまった

    Access2007でフォームから誤って3件のデータを上書きしてしまいました。テーブルのデータが変更されてしまって、元にあったデータがなんて書いてあったのかわからなくなりました。アクセスでは、レコードを移動するたびに自動保存されるので、間違って上書きしたデータが保存されてしまい、元のデータがわからなくなりました。"戻る"ボタンで戻っても、レコードを上書きした後の状態までしか戻せませんでした。このような時、どうすれば元のデータがわかりますか?

  • Accessのデータ共有について

    現在社内の顧客管理システムをAccessにて構築しており、データテーブルファイル(mdb)をファイルサーバに置き、クライアントPCはフォームやクエリだけのmdbを使用してテーブルのリンクでデータ共有しています(Accessのデータ分割ツールにてテーブルとフォーム、クエリを分離しただけの状態で運用しています)。これまでは、この状態でも運用出来ていましたが、データ量が多くなるにつれ、段々動作が重くなってきた為、処理速度改善の為に、以下の二案を検討していますが、どちらの案が効果的なのでしょうか? 【案1】 クライアント用mdbファイルに同じテーブル構成の一時テーブルを作成し、mdbファイル起動時と、「更新」ボタンを別途作成し、「更新」ボタンが押下されたタイミングで、ファイルサーバのデータベースからADOにて一時テーブルに全データを読み込む。更新系の処理は、各クライアントの一時テーブルとファイルサーバのデータベースに対して行う。 【案2】 現状フォームの遷移については、 「DoCmd.OpenForm」関数の引数に検索条件を指定する方法で行っている為、この部分を ・ADOにてデータを取得  ↓ ・遷移後のフォームに値をセット と言った処理に変更する。 また、上記以外の方法で何か良い方法がありましたらご指摘頂ければと思いますので、よろしくお願いします。

  • ACCESS MSDE フォーム上からのデータ更新による競合

    いつもお世話になっております。 WINDOWS XP ACCESS 2002,2003 を使用しております。 既存のMDBファイルを MSDEを使用するADPファイルに置き換え、 なおかつ複数端末による運用が可能なようにシステムを変更しております。(元々複数端末で使用しています) 以下の手順でadpファイルを作って運用使用とする場合に疑問があるのですが。 (1)MSDEデータベースに接続したadpファイルを作成。 (2)フォームのレコードソースをMSDEデータベースのテーブル、 テキストボックスのコントロールソースに、そのテーブルに存在するフィールドを設定。 (3)このadpファイルを複数マシンに置き、同時に起動。 (4)作成したフォームで同一のレコードを同時に修正。 この場合に、後のほうで更新した時に 「データの競合」ダイアログが表示され、データを反映するか、先に更新されたほうを優先するか 選択できるますが、 mdbでも同様の運用が可能ですが、この運用を続けるとデータ破損の温床になるようですので控えておりました。 MSDEを使ったadpファイルでも同様のことが言えるのでしょうか? また、もしこの運用に問題があるとすれば、非連結のテキストボックスを設けて「更新」ボタンでADOによる 更新を行わなければならないのでしょうか。 レコードをリスト形式で表示しているので出来ればそれはさけたいのですが。 どなたかご教授のほど、何卒よろしくお願いいたします。

  • アクセス2003のフォーム上のコマンドボタンについて。

    アクセス2003のフォームで一覧を作っています。その中の1つをクリックすると詳細画面に移動させようとコマンドボタンをおいたのですが、下記のエラーが出ます。対処法を教えてください。 エラーの内容です↓ テーブル’業者登録’はほかのユーザーが排他的に開いているか、既にユーザーインターフェイスを介して開いているので、プログラムによって操作することはできません。 ACCESSのバージョンは2003です。 ’メンテナンス進捗’というフォーム上に一覧があり、それぞれに詳細ボタンを置き、その詳細ボタンをクリックするとそのIDに見合ったメンテナンスの画面を開きたいです。 主テーブルは‘メンテナンス‘で副テーブルには’機器登録’と’業者登録’があります。‘メンテナンス‘と’機器登録’は機器管理IDで結ばれ、と’機器登録’と’業者登録’は業者IDで結ばれています。このリレーションの仕方が悪いのでしょうか?分かりづらくて申し訳ありません。

  • ACCESSデーターベースの分割

    OS: Windows 2000 version: Access 2003 ACCESSでデーターベースを構築し運用していますが、破損が頻繁に起こり、 全員がいったんデーターベースを閉じ修復を行うまで、新しいユーザーがデーターベースを開けなくなってしまいます。 現在、ユーザーは5名ほどです。 過去の質問を読んでいますととにかくテーブル側とフォーム側に mdbファイルを分割せよとの皆さんおっしゃっておられますので試したところ、処理速度が格段に遅くなってしまいます。 一つのフォームを開くのに15秒以上かかることもあります。 このような問題はみなさんどうやって解決されているのでしょうか? 

  • ACCESS VBAでのフォームのコピー

    ACCESS VBAでのフォームのコピー OS;WinXP,ACCESS2000 以下のデータベースファイル(ファイルAとする)がある。 テーブル:生産量テーブル フォーム:閲覧フォーム、転送フォームA 生産者テーブルは、毎日のデータを蓄えるもので1か月分ある。 閲覧フォームは、生産量テーブルのデータを見やすく整えたフォーム。 生産量テーブルは1カ月分しかないため、次の月になったら生産量テーブルから 所定のレコード(月によって変わる)のみ抜き出した新しいテーブルBを作成する。 そして新たにデータベースファイルBをVBAで作成し、DoCmd.ObjectCopyで、 ファイルAからファイルBにテーブルBと閲覧フォーム、転送フォームAを コピーしようと考えた。 (1):しかし、転送フォームA上でVBAを用いてコピーしようとすると、 転送フォームAのみ、フォームが開いているのでコピーができない旨のエラーが出る。 (2):転送フォームAを転送フォームBと名前を変えてコピーすることはできるが、 ファイルBを開いたときに名前を転送フォームAに自動で戻さなければならない。 (手動で戻すことはできないとお考えください) (3):(2)の変形版で、ダミーテーブルをコピー時に作ってファイルBに送信し、 ファイルBを開いたときにダミーテーブルがあればこれを消して転送フォームBを 転送フォームAに名称変更することも考えたが、ダミーテーブルがあるか否かを 判定する関数(if文とかと同時使用することとなるだろうが…)がわからない。 長文になってしまいましたが、どなたか知恵をお貸しください。

  • アクセス 運用後のデータ移行について

    アクセスでシステムを運用中です。システムに変更が生じファイル構成も変更になります。現システムとは別に変更を行い、テスト後に現システムのデータのみを移行する予定です。(ファイル構成のみを現システムも同様に変更するものとする)  このような場合、どんな方法がより簡単にできるでしょうか?アクセスは2000、WindowsMEです。  今まで変更が生じた場合、両方のデータベースを開き、各テーブルを開いて全てコピー&貼り付けで行ってきました。しかし、データが多くなるにつれ、コピー&貼り付け時にエラーが発生するようになりました。  ファイルメニューのエクスポートで行うと、リレーションシップを設定しているために、リレーションシップを削除しないとエラーとなりできません。できれぱ、リレーションシップ等も触らないでできる方法があれば教えていただきたいのです。  現システムを直接変更することは、変更量が多く運用との問題でできません。よろしくお願いします。m(__)m

  • アクセスフォームで別テーブルの呼びだし。。。

    よろしくお願いします。 アクセスで区分と連番というテーブルがあります。 フォーム連番を使い入力していますがフォームから手入力するのが大変なので区分というテーブルをつくり、入力するときに区分テーブルから参照できるようにしたいのです、リレーションショップはしてみましたが考えているような参照はできませんでした。 フォーム連番は下記4項目入力しています。 管理区分: 連番: 機器番号: 機器名称: テーブル区分は下記の2項目です 管理区分: 機器名称: このときフォームの機器名称のところで区分の機器名称を参照してほしいのですが。 教えてください、お願いします。

  • アクセスのフォーム

    アクセスのフォームで、フォームで何も入力しなかった項目は、テーブルのフォールドが空白になるのでは無く、0になる方法はありますか? 誰か教えて下さい。よろしくお願いします。

  • アクセスファイルを上書きしてもデータが消えないようにしたい

    アクセス2000にて受注システムを構築しています ひとつのファイルにテーブル、クエリなど全てのプログラムを組んでます テーブルはODBCリンクで行っているのですが、2~3種類ほどローカルテーブルがあり、 ここに月々のデータが保存されています。(1ヶ月ごとに手動で削除) 更新・変更などでファイルを上書きすると、このローカルテーブル内のデータが消えてしまうのですが、 消えないようにする方法っていうのはありますでしょうか

専門家に質問してみよう