1

RMA (Return Material Auth) 情報 (日付、RMA 番号、評価、出荷日、RMA のアイテムなど) を処理する Access 2003 データベースがあります。この Access データベースには、次の 3 つのフォームがあります。

  • RMA の追加 (アイテムのない新しい RMA をデータベースに追加します。このフォームには、これまでに追加された RMA のすべてのアイテムを一覧表示するサブフォームがあります)
  • RMA の表示 (データベース内の既存の RMA に関する情報を表示し、各 RMA のすべてのアイテムをサブフォームに表示します)
  • RMA にアイテムを追加 (各 RMA には複数の異なる種類のアイテムが返品される可能性があるため、RMA に新しいアイテムを追加するための専用フォームがあります。各エントリの後、フォームは自動的にクリアされ、追加のエントリが許可されます)

RMA フォームへの「RMA の追加」および「アイテムの追加」には、すべての非バインド フィールドがあります (これらのフィールドは、新しい入力を受け入れ、ボタンが押されたときにのみデータベースに INSERT INTO するように設計されています。

「RMA にアイテムを追加」フォームには 5 つのフィールドがあり、すべてバインドされていません。実際のフォームは、データベースからの情報をまったく参照していません。5 つのフィールドの 1 つは RMA 番号です。

「新しい RMA」フォームと「RMA を表示」フォームには、「RMA にアイテムを追加」フォームを開くためのボタンがあります。前の画面の RMA 番号が事前に入力された RMA 番号フィールドを使用して、[RMA にアイテムを追加] フォームを開くボタンを希望します。各フォームの各フィールドには「RMANbr」という名前が付いています。

「View RMA」フォームのコマンド ボタンの「On Click」イベントに次のコードがありますが、機能していないようです。[RMA をアイテムに追加] フィールドが空白で表示されます。

Private Sub AddItemtoRMA_Click()
  DoCmd.OpenForm "Add Item to RMA", , , "RMANbr = " & Me!RMANbr
End Sub

フィールドはバインドされていないことに注意してください。

そこで、「Add Item to RMA」フォームのバインドされていない RMANbr フィールドに、「Add RMA」および「View RMA」フォームの RMANbr フィールドを自動的に入力するコードが必要です。

また、[RMA の追加] と [RMA の表示] のサブフォームに、[RMA にアイテムを追加] フォームを介して各アイテムが追加された後 (ボタンが押されたとき) に、すべてのアイテムが更新/再照会されるようにしたいと考えています。私はもう試した

RMA Inforation.Requery
Add RMA.Requery

成功しませんでした。更新もエラーも何もありません。

これはコードで実行できますか?

4

1 に答える 1

2

説明にどれだけ従ったかはわかりませんが、 でOpenArgsパラメーターを利用できるようですOpenForm。(既存のコードではWhereConditionパラメーターを使用していますが、バインドされていないフォームでは意味がありません。)

OpenArgsの 7 番目のパラメータOpenFormです。コンマを正しく数えれば、これはうまくいくかもしれません:

DoCmd.OpenForm "Add Item to RMA", , , , , , Me!RMANbr

ただし、コンマを数えないようにオプションの名前を使用します。

DoCmd.OpenForm "Add Item to RMA", OpenArgs:=Me!RMANbr

次に、ターゲットフォームのロードイベントで、新しいレコードに移動して、OpenArgs保持されているテキストボックスの値を使用できますRMANbr(テキストボックスの名前はtxtRMANbr だと思います)。

Private Sub Form_Load()
    DoCmd.GoToRecord acDataForm, , acNewRec
    If Not IsNull(Me.OpenArgs) Then
        Me.txtRMANbr = Me.OpenArgs
    End If
End Sub
于 2013-07-11T17:02:45.913 に答える