2016-08-02 17 views
1

私はDepositIDをハイパーリンクとして設定して、預金を一覧表示するレポートを持っています。 OnClick of DepositID、それは特定のレコードに入金記入フォームを開きます。ただし、ユーザーがクリックするのではなく、新しいレコードがフォームに開きます。私はそれが新しいレコードに行くフォームのOnLoadを実行するコードの別のビットがあり、OnClickコードを実行した後にそれを実行している可能性があるためだと思います。アクセスVBA - レポートからの特定のレコードへのフォームのオープン

レポートからDepositIDのクリック時:フォームの

DoCmd.OpenForm "DepositForm", acNormal, "", "[DepositID]= " & [DepositID] 

のOnLoad:

DoCmd.GoToRecord , , acNewRec 

は、クリック時のコードの後に​​実行されているのOnLoadコードされ、効果的にレポートから指定されたレコードが表示されません?修正する方法がわからない

+2

印刷デバッグ機能を使用して、すばやく簡単に確認できます。 'Debug.Print" Here "やMsgBox" Here "を各イベントハンドラに入れてみましたか?それらに異なるメッセージを与えれば、いつどのような順序で正確にトリガーするかを知ることができます。 OnClickの後でOnLoadがトリガーされている場合は、それを見ることができます。 – Mikegrann

+0

フォームのオープンの順序は、「開く」>「ロード」>「サイズ変更>アクティブ化>カレント」です。 OpenForm呼び出しの 'Criteria'部分を削除し、' DepositID'をその文の最後に(オープン引数として)単純に移動することができます。次に、開いているargsのために 'Open'をチェックします。 –

答えて

2

私はあなたのOnLoadイベントでAddNewRecordを使用しません。

あなたは両方の編集/目的を追加するためのフォームを使用している場合は、フォームを開く2つのコマンドボタンを持っている必要があります - それぞれの目的のために1

のForm_Load

DoCmd.GoToRecord , , acNewRec 

使用からこの行を削除しますであるとして、あなたが今まさに持っている編集コマンド - または追加エディットモード

DoCmd.OpenForm "DepositForm", acNormal, "", "[DepositID]= " & [DepositID], acFormEdit 

は、のように新しいレコードを追加するための新しいボタンを追加します。

DoCmd.OpenForm "DepositForm", acNormal, , , acFormAdd 
+0

これは完璧なソリューションです! – user646464

関連する問題