マイクロソフトエクセルのまとめ記事はこちら
Microsoft Office ブログランキングへ
検索
今「津島」という名前を検索し「津島 紳二」と表示されています。
ただし、「津島」はこの方だけではありません。
複数名いますね。
このような場合に「次を検索」という事をしたいですね。
「検索文字列」ボタンの隣に「次を検索」ボタンを設置しました。
このボタンのVBA記述は下記です。
Private Sub コマンド51_Click()
Dim v As Variant
Screen.PreviousControl.SetFocus
Screen.ActiveControl.SelStart = 255
v = Me.テキスト48
Me.テキスト48 = Null
DoCmd.FindRecord v, acAnywhere, False, acDown, , acAll, False
Me.テキスト48 = v
End Sub
まず「Screen.PreviousControl.SetFocus」ですが、
これはフォーカスを直前に戻すという意味です。
「次を検索」ボタンを押した段階で、フォーカスは「次を検索」ボタンに移動します。
これを1つ前に戻すためにこのコマンドが挿入されています。
次に「Screen.ActiveControl.SelStart = 255」ですが、
「SelStart」とは、テキストボックス内のどの部分にカーソルがあるかを示します。
今=255としている理由は、テキストボックスに入力できる文字数の最大が
「255」なので「255」にしています。このように「255」にしておけば自動的に
最後尾にカーソルが入ります。
「SelLength」というプロパティもあり、これはテキストボックス内の文字数を取得します。
ですから下のように記述しても同じ結果が得られます。
Screen.ActiveControl.SelStart = Screen.ActiveControl.SelLength
後は「DoCmd.FindRecord v, acAnywhere, False, acDown, , acAll, False」ですね。
最初の「検索文字列」の時と若干違っています。
・[,Search]・・・検索方法を指定します。
ここがacDown・・・カレントレコードから末尾のレコードへ検索になっています。
具体的に言うと「津島 紳二」から末尾に向かって検索しなさいという命令ですね。
ニキビ集中ケアの体験エステ <エステのエルセーヌ>
【このカテゴリーの最新記事】