3

非営利団体のために MS Access 2010 の購入データベースに取り組んでいますが、他のリソースを使用しても解決できないような問題に遭遇しました。

この説明に関連するテーブルが 2 つあります。1 つは発注書、もう 1 つは品目です。各明細項目レコードには、「参照整合性の強制」がオンになっている、1 つの PO から複数の購買明細に関連付けられた発注番号 (文字が許可されているため、実際にはテキスト フィールドです) があります。) PO を編集するために、ウィザードで最初に作成したフォームですが、それ以来大幅に変更されています。PO 編集フォームにはサブフォームがあり、メイン フォームの現在の PO によってフィルター処理された購買明細テーブルのデータシート ビューが表示されます。

最初に、サブフォームに新しいレコードを作成すると、リンクしている PO フィールドが現在の PO に自動的に設定されました。このようにして、新しい購買明細レコードが現在の PO に関連付けられました。しかし最近、リンク フィールドに値のない新しいレコードが作成されており、その列で PO を手動で選択しない限り、レコードは保存時にビューから除外されます。

問題は、このタイプのサブフォームで新しいレコードがどのように初期化されるかを制御するプロパティはどれかということです。この動作を引き起こす可能性のある別の問題はありますか?

残念ながら、私はこの問題にすぐには気がつきませんでした。そのため、動作してから失敗するまでの間にどのような変化があったのかわかりません。さらに、断続的で、機能する日と機能しない日があります(ただし、1日以内に変化することはありません)。これは、別の変数が欠落していることを意味しているだけだと思います。

ここで質問する前に、私の調査に基づいて、私が試したいくつかのこと:

以前は、サブフォームの「Link Master Fields」プロパティが親フォームの「ID」フィールドに設定されていました。そのフィールドにリンクされているメイン フォームにテキスト ボックスを作成し、それをマスター フィールドとして設定しました。正直なところ、それがどのように役立つかはわかりませんが、複数のハウツーガイドが推奨していました.

購買明細テーブルでリンク フィールドを必須にする。これにより、レコードが消えるのを防ぎますが、初期化は変更されません。

2 つのフィールド間の参照整合性を強制します。先ほど言ったように、現在は強制されていますが、元々はそうではありませんでした。これによる目立った変化はありませんでした。

サブフォームに入る前にレコードを手動で保存します。同様に、終了する前にサブフォーム レコードを保存します。

アドバイスをよろしくお願いします。

4

2 に答える 2

1

この投稿が古いことは知っていますが、最近この問題に遭遇し、解決策を見つけました。

データベースが分割されていると思います。Access のバージョンが、データベースが組み込まれているバージョンよりも新しい場合、問題が発生します。

フロント エンドからテーブルを削除し、それらに再リンクします。フォームのマスター/子フィールドをリセットすると、すべてが正常に機能するはずです。

これが将来誰かに役立つことを願っています。

于 2014-06-21T13:59:45.887 に答える
0

サブフォームで、リンク子フィールドとリンクマスターフィールドの両方のプロパティが、リレーションシップが作成されたデータベースフィールドに設定されていることを確認します。親フォームが、リレーションシップが作成されたキーフィールドを含むレコードソースにバインドされている場合、リンクするテキストボックスやその他のコントロールを指定する必要はなく、フィールドの名前だけを指定する必要があります。

于 2012-12-11T21:26:56.103 に答える