Private Function DAO接続_find() As Boolean
Dim myDb As DAO.Database 'データベースオブジェクト
Dim myRs As DAO.Recordset 'レコードセットオブジェクト
Dim strSQL As String 'SQL文用文字列
'エラートラップ
On Error GoTo Err_Exit
'関数の戻り値初期化
DAO接続_find = False
Set myDb = CurrentDb '現在のデータベースをセット
'SQL文作成(誕生月指定)
strSQL = "SELECT * FROM 顧客テーブル"
'レコードセット取得
Set myRs = myDb.OpenRecordset(strSQL)
With myRs
'対象データがなければ終了
If .EOF Or .BOF Then
MsgBox "該当データがありません。処理を終了します。", vbOKOnly + vbInformation
GoTo End_Proc
Else
'条件に一致する最初のデータを検索
.FindFirst "誕生月 = 3 AND 都道府県='東京都'"
'条件に一致するデータがある限りループ
While Not .NoMatch
'対象データを編集モードにする
.Edit
'プレゼント発送日にシステム日付を代入
.Fields("プレゼント発送日") = Date
'更新実行
.Update
'次のレコードを検索
.FindNext "誕生月 = 3 AND 都道府県='東京都'"
Wend
End If
End With
MsgBox "処理を終了しました。", vbOKOnly + vbInformation
End_Proc:
'オブジェクトの開放
Set myRs = Nothing: Close
Set myDb = Nothing: Close
'正常終了
DAO接続_find = True
Exit Function
Err_Exit:
'エラーNOとエラーの詳細を表示
MsgBox Err.Number & ":" & Err.Description, vbOKOnly + vbCritical, "DAO接続()_find"
'オブジェクトの開放
Set myRs = Nothing: Close
Set myDb = Nothing: Close
End Function
ADOレコードセットからデータを検索する方法
Private Function ADO接続_filter() As Boolean
Dim myCn As ADODB.Connection 'ADOコネクションオブジェクト
Dim myRs As ADODB.Recordset 'ADOレコードセットオブジェクト
Dim strSQL As String 'SQL文用文字列
'エラートラップ
On Error GoTo Err_Exit
'関数の戻り値初期化
ADO接続_filter = False
'現在のデータベースへ接続
Set myCn = CurrentProject.Connection
'ADOレコードセットのインスタンス作成
Set myRs = New ADODB.Recordset
'SQL文作成(誕生月指定)
strSQL = "SELECT * FROM 顧客テーブル"
'レコードセット取得
myRs.Open strSQL, myCn, , adLockOptimistic
With myRs
'検索条件をフィルターに適用
myRs.Filter = "誕生月 = 3 AND 都道府県='東京都'"
'対象データがなければ終了
If .EOF Or .BOF Then
MsgBox "該当データがありません。処理を終了します。", vbOKOnly + vbInformation
GoTo End_Proc
Else
'先頭レコードに移動
.MoveFirst
While Not .EOF
'プレゼント発送日にシステム日付を代入
.Fields("プレゼント発送日") = Date
'更新実行
.Update
'次のレコードに移動
.MoveNext
Wend
End If
End With
MsgBox "処理を終了しました。", vbOKOnly + vbInformation
End_Proc:
'オブジェクトの開放
Set myRs = Nothing: Close
Set myCn = Nothing: Close
'正常終了
ADO接続_filter = True
Exit Function
Err_Exit:
'エラーNOとエラーの詳細を表示
MsgBox Err.Number & ":" & Err.Description, vbOKOnly + vbCritical, "ADO接続_filter()"
'オブジェクトの開放
Set myRs = Nothing: Close
Set myCn = Nothing: Close
End Function
コメント