これでAccessにデータベースがあり、(ジョブアプリケーション用に)1つのフォームを開いてボタンをクリックすると、コード:Me.OpenArgsは、アクセス時に新しいフォームを開こうとすると常にnullを返します
Private Sub cmdAddDemo_Click()
DoCmd.OpenForm "sfrmAppDemographics", , , , , , txtApplID.Value
End Sub
ここで、txtApplIDは、アプリケーションのテーブル内の「アプリケーションID」番号の数値で埋められたテキストボックスです。私はこの値を "sfrmAppDemographics"フォームに渡して、アプリケーションの前述の形式で表示されたユーザーの正しい人口統計情報を開きます。
だから、私は人口のコードでこれをやったの形成:
Private Sub Form_Open(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = Me.Recordset
If rs.RecordCount = 0 Then
rs.AddNew
rs!ApplID = Me.OpenArgs
rs.Update
Else
MsgBox Me.OpenArgs
End If
Me.Requery
End Subの
何の人口統計学的情報はありませんのであれば、アイデアがある、それは使用して新しいものを作成します。 ApplIDが渡されたopenargsから取得され、このユーザーの人口統計データがある場合、openargs(メッセージが動作しているかどうかを確認するためのテスト)としてメッセージボックスがポップアップ表示されます。私はいつもエラー "実行時エラー '94':無効なNullの使用" - MsgBoxの行にします。 (データベースには人口統計のレコードがあるため)。私がElse MsgBox Me.OpenArgsを取り出すと、それはApplID 1を持つdbの最初の人口統計情報を表示するだけです。Strange。私は、Form_OpenコードのOpenArgs機能を使ってApplIDを渡すことも、アクセスすることもできないようです。どんな助け?
これは私には意味がありません。フォームのレコードセットに基づいてレコードセットを設定しようとしていますか?まだロードされていない可能性もあります。レコードセットにデータがないかぎり、OpenArgsにはトラップされません.AppIDをチェックすることさえありません。あなたのコードの最上部に 'Debug.Print Me.OpenArgs'を置くと、Form_Openイベントに渡されていることが示されます。 – dbmitch