Access 2007 Split Form VBA:ACNEWREC ON OPENはフォームのタブを防ぎます - 最初のフィールドが「選択」されていないような動作

StackOverflow https://stackoverflow.com/questions/4047422

質問

誰かが私を助けたり、少なくとも回避策を把握できることを願っています。

Access 2007の分割フォーム機能を使用しています。2つのButton_Clickイベントの後、Form_openイベントで以下のコードを実行します。コードは、Button_Clickイベントを実行して実行すると正常に動作しますが、form_openイベントで実行されると問題が発生します。

フォームが開かれ、ユーザーが最初のフィールドにテキストを入力した場合、タブまたはマウスを使用して次のフォームフィールドを選択することはできません。ユーザーは、ESCを押してデータエントリをキャンセルするまで、最初のフォームフィールドに閉じ込められます。フォームが開かれたときに最初のフォームフィールドにデータを正常に入力するには、ユーザーは最初に別のフォームフィールドを選択し、最初のフォームフィールドを再選択してから、最初のフォームフィールドにテキストを入力する必要があります。このナンセンスの後、ユーザーはタブまたはマウスを使用して次のフォームフィールドを選択できます。これは、フォームが起動するたびに1回実行する必要があります。 Button_clickイベント上の同じVBAコードは正常に動作します。

注目すべき:フォームが最初に開かれたとき、フォームのデータシートセクションのフォームフィールドは「選択」されていません。ユーザーが最初のフォームフィールドにデータの入力を開始すると、「新しいレコード」マーカー(*)は正常に2行目に移動しますが、最初の行は入力であるデータを表示しません。この動作は奇妙です。

クリアフィールドを実行した後、別のフィールドをクリックして、上記の最初のフィールドワークアウンドに戻るに戻ります。データシートには、選択されたフィールドとデータが入力されているため、適切にフィールドとデータが表示されます。

何か案は?これはバグですか?フォームオープンでVBAを介してフィールド選択回避策を実行するなど、簡単な回避策はありますか?

どんな助けも大歓迎です。

コード:

DoCmd.ApplyFilter , "([Contractor].[CheckOutStamp] Is Null)"
DoCmd.GoToRecord , "", acNewRec

MDBへのリンク:https://docs.google.com/leaf?id=0b-jx09cwiqdsywm2mzmzmdqtyjuzni00n2e5lwfjytktnzfiywyzmdziywu1&hl=en&authkey=cppmomef

役に立ちましたか?

解決

いくつかの考え:

OnopenからOnloadに移動してみてください。 Onopenのイベントは、データが実際にロードされる前に発生する可能性があり、その後オンロードが発生すると既に行われます。

また、フォームのフィルタープロパティを [Contractor].[CheckOutStamp] Is Null フィルターを「はい」に設定し、フォームをDataEntryに設定します。つまり、オープン時にデフォルトで新しいレコードになり、古いレコードをロードしません。開いたら、フォームの編集/追加モードを好きなものに変更できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top