0

現在、選択クエリを表示するサブフォームがあります。サブフォームに表示されているテーブル B のすべてのレコードをフォームの情報で更新したいと考えています。サブフォームは不要です。選択クエリが正しく表示されていることを確認するために使用していました。

テーブル A には 3 つの列 (OID、Project_Number、Landowner)
があります。テーブル B には 4 つの列 (OID、PhoneNum、Address、Year) があります。

これらのテーブルには、1 対多の関係があります。表 A の 1 つの OID は、表 B の多くの OID に関連しています

Table A
1          A10          Bill
2          B10          Sally
3          A10          Bill

Table B
1          555          123 blah st           2012
1                                             2013
2          111          456 aaa st            2012
3                                             2012

このフォームを使用すると、ユーザーはテーブル B に入力する情報を入力できます。サブフォームには、Project_Number、Landowner、および Year がフォームに表示されているレコードと等しいレコードのリストが表示されます。

For example.  If the form is showing
1         A10          Bill

the subform is showing
1         A10          Bill        2012
3         A10          Bill        2012

保存コマンド ボタンをクリックすると、更新クエリを実行したいのですが、SQL コマンドに問題があります。

私の選択クエリは次のとおりです。

SELECT B.Project_Number, A.LANDOWNER, B.Year
FROM A INNER JOIN B ON A.OBJECTID = A.OBJECTID;

サブフォームはセットアップ
Link Child Fields: Project_Number; です。年; Landowner
Link マスター フィールド: B.Project_Number; 年; A.地主

をお願いします:

UPDATE B.PhoneNum, B.Address, B.Year
WHERE items found in my subform
WITH information from my form

サブフォームを忘れて、単一の更新クエリですべてを実行する方が簡単ですか?

UPDATE B SET B.phonenum = [New_Info]![PhoneNumCtrl], B.Address = [New_Info]![AddressCtrl]
WHERE [A]![Landowner] = The same landowner as the OID selected, [A]![Project_Number] = The same project number as the OID selected, [New_Info]![Year] = [B]![Year]

助けてくれてありがとう!

すべてが機能しています。私はdjphaticの答えに追加したかった.
これを行うときは、必ず [Forms]![formname]![controlname] を追加してください。

4

1 に答える 1

1

フォーム上のコントロールの場所によっては、コントロールの参照を変更する必要がある場合があります。

クエリ ビルダー GUI を使用して、更新する列を含む選択クエリを作成し、フォームのコントロールを使用してレコードをフィルター処理します。これを取得したら、クエリを更新クエリに変更し、フォームのコントロールに値を設定できます。

UPDATE  B
SET B.phonenum = [formname]![controlname], ...
FROM B JOIN A ON B.OID = A.OID
WHERE A.PROJECTID = [formname]![controlname]
AND B.YEAR = [formname]![controlname]
于 2012-11-16T20:46:04.737 に答える