いつも参考にさせて頂いてます。
Access2003で検索フォームを作成しています。
find系メソッドで検索を行い、フォームに表示させるのですが
該当データが複数あった場合の処理について質問させてください。
現在、該当データが複数あった場合、ループの中でfindnextを使用し
msgboxにて次の該当データを表示させるかどうかという条件分岐をしています。
ただ、この方法だとmsgboxが画面の真ん中に出てしまうので
表示されたフォームが見ずらく、使い勝手が悪いのです・・・。
そこで自分で作成したmsgboxのようなフォームを作ったのですが
どのようにしてそのフォームからの戻り値を受け取るのかと
処理の流れがわかりません。
わかる方いましたら教えてください。
宜しくお願いします。
Private Sub 検索_Click()
Dim db As Database
Dim rs As Recordset
Dim str As String
Dim msg As String
Set db = CurrentDb
Set rs = db.OpenRecordset("取引テーブル", dbOpenDynaset)
str = "取引番号='" & Me.検索 & "'"
rs.FindFirst str
If rs.NoMatch = False Then
Me.torihikiNo.Value = rs.Fields("取引番号")
Me.torihikiDay.Value = rs.Fields("取引日")
Me.kokyakuName.Value = rs.Fields("顧客名")
Do Until rs.EOF
rs.FindNext str
If rs.NoMatch = False Then
msg = MsgBox("該当データが複数存在します。次を表示しますか?" _ '←ここを変更したいのです。
, vbYesNo _
, "確認")
Select Case msg
Case vbYes
Me.torihikiNo.Value = rs.Fields("取引番号")
Me.torihikiDay.Value = rs.Fields("取引日")
Me.kokyakuName.Value = rs.Fields("顧客名")
Case vbNo
Exit Do
End Select
Else
MsgBox "該当データはこれ以上ありません。"
Exit Do
End If
Loop
Else
Me.torihikiNo.Value = vbNullString
Me.torihikiDay.Value = vbNullString
Me.kokyakuName.Value = vbNullString
MsgBox "該当するデータはありません。"
End If
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Sub
お礼
ありがとうございます。 Publicで宣言してやってみたところ 何とか出来ました! ありがとうございました^