MS Access データベースに、1 ページに 1 つの注文の注文番号を持つ注文を一覧表示するフォームがあります。フォームの下部には、注文の項目を追加するための別のフォームを開くボタンがあります。
MS Access で vb を使用して注文番号を取得し、それを新しいアイテムの詳細フォームのフィールドに自動的に入力しようとしています。さまざまな方法を試しましたが、OpenArgs を使用することをお勧めします。しかし、詳細フォームが開かず、実行時エラーが発生します。問題の詳細は次のとおりです。アドバイスをいただければ幸いです。
関連するフォームとフィールドは次のとおりです。 注文を含むフォームは frmPedidoAvifiFind です。1 つの注文の注文行を含むフォームは frmPedidoAvifi-dtlAdd です (詳細を追加するための別のフォームですが、既存のものを表示するためのものではありません)。注文番号の両方のフォームのフィールドは PedidoAvifiNo です。これは、このフィールドを介して一対多の関係でリンクされている両方のテーブルの数値フィールドです。
メイン フォーム: ボタンは詳細フォームを表示します。コードは次のとおりです。
メイン フォーム ボタンのコード:
Sub AddDetails_Click()
Dim strDocName As String
strDocName = "frmPedidoAvifi-dtlAdd"
' Open frmPedidoAvifi-dtl form in data entry mode and store PedidoAvifiNo in the form's OpenArgs property.
DoCmd.OpenForm strDocName, , , , acFormAdd, , [frmPedidoAvifiFind]![PedidoAvifiNo]
End Sub
詳細フォーム: On Open プロパティ
Private Sub Form_Open()
If Me.OpenArgs <> vbNullString Then
Me.PedidoAvifiNo = Me.OpenArgs
End If
End Sub
テスト 1: レコードが表示されるように、メイン フォームで注文番号を選択します。ボタンを押してオーダーラインを追加します。- 実行時エラー '2465' フィールド "|" が見つかりません 参照。Debug は DoCmd 行を強調表示します。
テスト 2: openform 行を次のように変更します: DoCmd.OpenForm strDocName, , , acFormAdd, , Me.PedidoAvifiNo 結果: - 実行時エラー 2501 openForm アクションが取り消されました。
ありがとう、Mike Gunner Reus、スペイン