FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

↑やる気アップにご協力をお願いします。わぁいヽ(∇⌒ヽ)(ノ⌒∇)ノわぁい♪

こんな記事もありますよ


フォームレコードの移動方法

もし・・・この基本 de ご~を参考にされる場合は(いないと思いますが・・・)
まず、基本 de ご~の注意をご一読下さい。
今回の基本操作は

フォームレコードの移動方法」です。

アクセスでレコードを入力したり、確認したりする場合、
基本的にフォームを利用することが多いと思います。

そのフォームに標準(?)で移動ボタンというものがありますが・・・

・・・ちっちゃいです・・・orz

そんな訳で、自前で移動ボタンをつくってしまえ!って魂胆です。( ̄ー ̄)ニヤリ



ここでは、ボタン自体の作成方法は抜きにして、
そのボタンのクリック時のイベントプロシージャのみを
記述したいと思います。

今回は、「次へ」というボタンと「戻る」というボタンを
作るとして、それぞれの名前を「btn_Next」と「btn_Back」と
しておきます。

また、フォーム名は「frm_A」としておきます。
Private Sub btn_Next_Click()

On Error GoTo ErrorCase 'エラーが発生した時にErrorCaseへ

DoCmd.GoToRecord acDataForm, "frm_A", acNext '(次のレコードに移動)

Exit Sub

ErrorCase: 'エラーが発生した時
Select Case Err.Number

Case 2105 '次のレコードがないとき(最終レコードで、次へを押したとき)
  DoCmd.GoToRecord acDataForm, "frm_A", acFirst '(最初のレコードに移動

Case Else
  MsgBox Err.Number & ":" & Err.Description, vbOKOnly, "エラー"

End Select
End Sub

Private Sub btn_Back_Click()

On Error GoTo ErrorCase 'エラーが発生した時にErrorCaseへ

DoCmd.GoToRecord acDataForm, "frm_A", acPrevious '(前のレコードに移動)

Exit Sub

ErrorCase: 'エラーが発生した時

Select Case Err.Number

Case 2105 '前のレコードがないとき(最初のレコードで、戻るを押したとき)
  DoCmd.GoToRecord acDataForm, "frm_A", aclast '(最後のレコードに移動)

Case Else

  MsgBox Err.Number & ":" & Err.Description, vbOKOnly, "エラー"

End Select
End Sub
基本的に「次へ」ボタンも「戻る」ボタンも中身は殆ど一緒です。(^^ゞ

今回は、移動先のレコードがないことも考慮して
On Error ・・・を利用してエラー処理ルーチンをつけています。

「エラートラップ」言われてるものになるようです。
エラートラップについての詳細は別に記載したいと思いますので
ここでは割愛・・・(・_・)ノ~ ゚ポイ

とりあえず、今回エラーが発生した場合には
Select Case 文でエラー時の動作を指定しています。

エラーナンバー 2105 は、移動先のレコードが存在しない場合に
表示されるエラーです。


今回は、最終レコードで「次へ」を押したら、最初のレコードに。
最初のレコードで「戻る」を押したら、最後のレコードに
自動的に移動するようにしています。

単純なプロシージャなので、他にエラーがあるとはあまり考えられませんが、
他のエラーが発生した時のため、Case Elseでエラーメッセージが表示される
ようにしています。

この辺の動作は、色々と適当にごちゃごちゃと書いてもいいかもしれません。
(゚ ゚;)\(--;)オイオイ ドッチダヨ

ま・・・ごちゃごちゃと色々書きました・・・実際に移動するための基本的なコードは・・・
DoCmd.GoToRecord acDataForm, "フォーム名", acFirst '(最初のレコードに移動)
DoCmd.GoToRecord acDataForm, "フォーム名", aclast '(最後のレコードに移動)
DoCmd.GoToRecord acDataForm, "フォーム名", acNewRec '(新規追加に移動)
DoCmd.GoToRecord acDataForm, "フォーム名", acNext '(次のレコードに移動)
DoCmd.GoToRecord acDataForm, "フォーム名", acPrevious '(前のレコードに移動)
DoCmd.GoToRecord acDataForm, "フォーム名", acGoto xx '(指定したレコード(xx)に移動
上記のいずれかになるでしょうね・・・ヾ(@^▽^@)ノわはは

ではでは 
今回はこの辺で
↑やる気アップにご協力をお願いします。わぁいヽ(∇⌒ヽ)(ノ⌒∇)ノわぁい♪

こんな記事もありますよ


コメントの投稿

非公開コメント

Author's Profile ~自己紹介~

Genzo

Author:Genzo
PCは一応自作できるレベル。
ワード・エクセルなら基本的に
扱えるレベル。
プログラム・・・?ん?
VBA・・・?ん?ん??
それって美味しいですか?


~ 当ブログについて ~

~ Mail2Genzo  ~

Calender&Search かれんだーと検索

07 | 2018/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

Access2Genzo内で検索

Category ~かてごりー~

Comments Tree ~こめんとつりー~


Link ~りんく~

ブロとも申請フォーム

Counter ~かうんた~

Since 2010/08/01:

Online:

タグクラウド

最新トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。