#128 フォームを開くと同時に最後の画面に移動するには? フォーム、VBA

「#127 フォームを開くと同時に最終レコードに移動するには?」の応用例です。

フォームが"帳票フォーム"の場合、GoToRecordメソッドを使って最後のレコードに移動すると、そのレコードが画面の一番先頭の行にある状態で初期表示されます。
最後のレコードに移動したときの画面例
最終レコードをカレントレコードとし、かつ"既存の数レコードも画面表示されている状態"で初期表示させたい場合には、次のようにします。
Private Sub Form_Load()

  Dim iintLoop As Integer

  'いったん最終レコードに移動します
  DoCmd.GoToRecord , , acLast

  '適当なレコード数、前に戻します
  '5は適当な値です。画面に応じて変更してください
  DoCmd.GoToRecord , , acPrevious, 5

  '戻した数だけレコードを進めます
  For iintLoop = 1 To 5
    DoCmd.GoToRecord , , acNext
  Next iintLoop

End Sub
既存のレコードも表示された画面例

※For〜Nextでレコードを進めている部分は、"DoCmd.GoToRecord , , acNext, 5" というコードでもよさそうですが、そうすると結局また最終レコードが画面の一番先頭になってしまいます。ループで1つずつレコードを進めるのがポイントです。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved