2011-12-16 4 views
1

私は2つのアクセスデータベースを持っています:Mainは私のデータのほとんどを格納し、Memosはデータ型メモのデータを格納します。 Memoフィールドについて読んだことはすべて、それらが腐敗する傾向があり、データベースを保護する唯一の安全な方法は、別々のリンクされたデータベースにメモを入れることだということだから、メモを別のデータベースに保存しています。アクセス:リンクテーブルに参照整合性を課す

MemosはテーブルのフィールドとInfoを有する: ID(タイプ自動番号プライマリキー) Info(タイプメモ)

MainはテーブルのフィールドとContentを有する: ID(タイプ自動番号プライマリキー) infoID(タイプ番号) entryDate(タイプ日付/時刻)

私は参照整合性をオンにしたいテーブルInfoからの有効なIDである値のみを受け入れることができるように、Contentを入力します。しかし、私はできません。Memosはリンクされたデータベースです。私は、Infoの値だけをContentに挿入できるように、データ入力プロセスの別のポイントでコントロールを設定できますが、データベースの制約によってそれを強制する方法があれば、コードを検証しないでください。

私が気付いていないリンクテーブル間で整合性を強制するもう1つの方法はありますか?同じDBにメモを保存できるようにMemoストレージの問題を処理する別の方法はありますか?

+1

これは古い問題だと思いますが、最近のバージョン(http://bytes.com/topic/access/answers/851398-memo-fields-multiuser-database)には関係ありません。どのバージョンをお使いですか? – Fionnuala

+0

@Remou、私はAccess 2010を使用しています。 – sigil

+1

不安定なネットワーク上でメモフィールドの更新をたくさん行っているのでなければ、それは問題ではありません。または、私の最初のコメント(リンクされていないコントロール)のリンクでメソッド3を使用します。別のテーブルを実際に保持する必要がある場合は、2010年以降に利用可能なデータマクロを検証することを検討してください。http://blogs.office.com/b/microsoft-access/archive/2009/08/13/access-2010-data- macros-similar-to-triggers.aspx – Fionnuala

答えて

0

いいえ、異なるデータベースのテーブル間で参照整合性を強制する方法はありません。

IMHO、最良の解決策は、MS SQLデータベースのバックエンドをセットアップし、そのDB内で参照整合性を設定することです。一般的に、それはあなたの状況(フレークネットワーク)でMS Accessよりも堅牢です。 SQL Server Expressのバージョンを手に入れることができます。

+0

私は、サーバー側の管理者権限を持っていなかったので、私は本当に、SQL ServerなしでAccessでこれを実行しようとしていたと私は何ができるすべては、共有ネットワークフォルダにアクセスファイルを入れました。しかし、プロジェクトが終わったので、もう一度やり直す必要があれば、SQL Serverのルートに行きます。 – sigil

関連する問題