Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
Recordsetを使用したレコード検索について
投稿日時: 18/08/08 16:05:51
投稿者: けん太

以下のロジックを組んでおりますが、エラーとなります。
findは使えないと言うことでしょうか?
 
「このタイプのオブジェクトには実行できません」
 
           '入力元CSVファイルを開く
            fn = FreeFile()
            Open file_pass For Input As #fn
   
   
            'テーブルを開く
            Set dbs = CurrentDb
            Set r_set = dbs.OpenRecordset("SEND_RESULT_DETAIL")
 
            'CSVファイルの全レコードを読み込むループ
            Do Until EOF(fn)
             
                'CSVファイルより1件分を読み込み
                Line Input #fn, strData
                 
                If line_cnt <> 0 Then
                    'カンマで区切って配列に代入
                    varData = Split(strData, ",", , vbTextCompare)
         
                    'ゼロサプレス項目、処理月の編集
                    sid = Right(String(9, "0") & varData(1), 9)
                    s_tuki = Format(varData(0), "YYYYMM")
                     
                     
                    'レコード存在チェック
                    r_set.FindFirst "処理年月 = s_tuki"
                    If r_set.NoMatch = False Then
                     
                        MsgBox ("その月は取り込み済みです")
                        Exit Function
                    End If
      
             
                    '各フィールドデータをテーブルに追加
                    With r_set
                        .AddNew
                        !配信日時 = varData(0)
                        ![AA#] = sid
                        !キーID = varData(2)
                        !ステータス = varData(3)
                        !業務ID = varData(4)
                        !業務名称 = varData(5)
                        !処理年月 = s_tuki
                        .Update
                    End With
                End If
                line_cnt = line_cnt + 1
            Loop
            S_FLG = 1
   
            r_set.Close
            Close #fn

回答
投稿日時: 18/08/08 16:18:19
投稿者: sk

引用:
このタイプのオブジェクトには実行できません

引用:
Set r_set = dbs.OpenRecordset("SEND_RESULT_DETAIL")

Set r_set = dbs.OpenRecordset("SEND_RESULT_DETAIL", dbOpenDynaset)
 
引用:
r_set.FindFirst "処理年月 = s_tuki"

'[処理年月]のデータ型がテキスト型である場合
r_set.FindFirst "処理年月 = '" & s_tuki & "'"

投稿日時: 18/08/08 16:39:42
投稿者: けん太

skさんありがとうございました。
 
色々と試してるうちにできたので、Closeしにきたら、
回答がありました。
 
お手数をおかけいたしました。