2016-10-25 10 views
0

私は助けが必要です。私はAccessでライブラリDBを設計しています。私は予約やローンのフォームに問題があります。既存のクライアントの新しい予約番号を自動生成する

私は、次の表があります。

librarymemberを

BookReservation

BookReservationDetail(ReservationNumberが自動生成、日時スタンプとFKがPKをlibrarymemberするようlibrarymemberです)(ReservationNumberを(LibraryMemberNumberは自動番号のPKを生成しています) 、ISBN、NOtified、cancelled and completedチェックボックスフィールド)

書籍(ISBN as PK、タイトルなど)

私のクエリは、下の画像の通りである:私は、テーブルに新しいレコードを生成することができますが、私は、フォームに新しいレコードを生成したい

main query image

。データ入力プロパティをyesに設定しましたが、フィールドボックスを選択してライブラリメンバーIDを入力しようとすると、式librarymembernumberにバインドされているため編集できないというエラーが表示されます。フォームには新しいレコードのみを表示し、ライブラリ番号を入力し、次の予約番号を生成するフォームにします。これは可能ですか?

+0

はい、可能です。まず、LibraryMemberNoおよびTotal ReservatedフィールドのControl Sourceプロパティをチェックすると、これらのフィールドにエラーが表示されません。 LibraryMemberNoはクエリフィールドを含む必要があります。このフィールドは計算しないでください。サブフォルダの詳細を持つ子フィールドのプロパティを確認するよりも。 –

+0

こんにちは返信いただきありがとうございます。私はコントロールのソースをチェックして、2つのFKが正しいテーブルのPKを指しています。これは、フォームがデータ入力モードにあるときの唯一の問題です。それは新しいレコードを自動生成するはずですが、同じフォームに2つのFKがあるためかもしれません。 – Ableman

+0

予約番号フィールドを削除した後も、ライブラリメンバーフィールドで同じエラーが表示されます。エラーは「コントロールは編集できません;式[librarymembernumber]」にバインドされています。 Librarymembernumberは自動番号PKです。それは問題を作り出すだろうか? – Ableman

答えて

0

ここには、ライブラリメンバー、ブック予約ヘッダー、予約予約の詳細など、すべて1対多の3つのエンティティがあります。同じフォームの行に同時に2つのエンティティを作成しようとしていますが、1対多の関係では不可能です。

あなたが解決のために、少なくとも2つの方法があります。

  1. は、ベースのクエリ、ライブラリメンバーFKからのライブラリのメンバーを削除し、既存のブック予約フォームを保つには、このコンボボックスを使用してメンバーをコンボボックスを選択して変換します。
  2. ライブラリーメンバー用の編集フォームをサブフォームとして使用するサブフォーム用のフォームを作成します。これは予約詳細をサブフォームとして持つため、3段階のフォームになります。

私はバリアント#1を使用します。実装して使用する方が簡単です。メンバを編集するには、コマンドボタンを追加します。

関連する問題