» 2010 » 9月 » 19のブログ記事

フォームA(単票)にサブフォームB(データシート)をつけている。
サブフォームBにデーターを入力し、その数値の合計の計算結果をフォームAのテキストボックスに表示する。

この場合、その結果を反映させるためには、フォームAを再クエリする必要がある。

キーボードからなら、[Ctrl]+[F9]であるが、これを自動で行うために、サブフォームBのプロパティー「挿入後処理」「更新後処理」「削除確認」で、次の様なイベントプロシージャを呼び出す。

 Me.Parent.Requery

これで更新は当然うまくいった。

しかし、その後フォーカス(カーソル)が最初のレコードのトップに移動してしまう。
フォームAは単票式なので、5ページ目とか10ページ目かを更新しても必ず1ページ目の最初のテキストボックス(フィールド)に移動してしまう。

なぜかはわからないが、これでは使い勝手が悪すぎるので対策をする必要がある。
で、

Private Sub Form_AfterInsert()
    Dim RecNum As Integer
    RecNum = Me.Parent.CurrentRecord
    
    Me.Parent.Requery
    
    Me.Parent.SetFocus
    DoCmd.GoToRecord , , acGoTo, RecNum
    Me.Parent.次のテキストボックス.SetFocus
End Sub

これでうまく行った。

「更新後処理」「削除確認」も同様でOK。(^_^)v


KUMAOの押入TOP

  • 累積 686194
  • 本日 26
  • 昨日 37
  • 累積PV 2159731
  • 本日のPV 35
  • 昨日のPV 53
  • 現在の閲覧 0

カレンダー

2010年9月
« 6月   10月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

カテゴリー

最近のコメント

アーカイブ

年間アーカイブ

Twitter