処理中にdataテーブルの数値フィールドに-99999という値が入った場合は、
処理を中断して、(警告メッセージを出して)dataテーブルを開いて
該当のレコードにカーソルを合わせる。
といったプログラムの書き方を教えてください。
該当のレコードにカーソルを合わせる方法がわかりませんでしたが、以下のような感じになるのではないのでしょうか。
ただ、思ったことは、検証したい数値フィールドがいくつあるのかわかりませんが、いくつあるのかはすでに分かっていると思いますので、-99999を検索するクエリを先に作っておいて(名前をdataクエリとしておきます)、
DoCmd.OpenQuery "dataクエリ"
で開けば、例え-99999のデータが複数あっても一度に見れるので便利かと思います。そうでないと、一個ずつ-99999のデータが見つかるごとに処理を中断していたのではユーザも辟易としてしまうのではないでしょうか。
Private Sub コマンド4_Click()
Dim rs As New ADODB.Recordset
Dim cn As New ADODB.Connection
Dim strSQL As String
strSQL = "SELECT COUNT(*) AS cnt FROM dataテーブル WHERE 数値フィールド = -99999"
Set cn = CurrentProject.Connection
rs.CursorLocation = adUseClient
rs.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly
If rs(0) > 0 Then
MsgBox "-99999のデータが、" & rs(0) & "個ありました。", vbOKOnly
DoCmd.OpenTable "テーブル1"
Set rs = Nothing
Set cn = Nothing
Exit Sub
End If
'続けたい処理
'・
'・
Set rs = Nothing
Set cn = Nothing
End Sub
コマンド4:処理を開始するボタン
そうですね、クエリを開くようにしたいと思います。
DoCmd.OpenTable "テーブル1"のところを、DoCmd.OpenQuery "dataクエリ"に置き換える
ということで良いのでしょうか。
使わさせていただきます。ありがとうございました。