人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ACCESSのVBAについて質問です。

処理中にdataテーブルの数値フィールドに-99999という値が入った場合は、
処理を中断して、(警告メッセージを出して)dataテーブルを開いて
該当のレコードにカーソルを合わせる。

といったプログラムの書き方を教えてください。

●質問者: rupopon
●カテゴリ:コンピュータ 学習・教育
✍キーワード:access VBA カーソル フィールド プログラム
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● freemann
●60ポイント

該当のレコードにカーソルを合わせる方法がわかりませんでしたが、以下のような感じになるのではないのでしょうか。

ただ、思ったことは、検証したい数値フィールドがいくつあるのかわかりませんが、いくつあるのかはすでに分かっていると思いますので、-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クエリ"に置き換える

ということで良いのでしょうか。

使わさせていただきます。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ