- ベストアンサー
コンパイルエラーが出ます。助けて下さい。
初歩的な質問ですみません。 参考書を参考に検索するVBAを書いたのですが、 12行目のFindfirstの所で、「コンパイルエラー:メソッドまたはデータメンバが見つかりません」 というメッセージが出てしまいます。 VBAは、下記の通りです。 宜しくお願いします。 ******************************************************************************************************************************************** Private Sub 検索_Click() Dim kaizen_rs As Recordset Dim field_name As String Dim find_txt As String Dim criteria As String field_name = "提案内容" find_txt = InputBox("検索したい文字を入力してください。") criteria = field_name & "='" & find_txt & "'" Set kaizen_rs = CurrentDb.OpenRecordset("管理/提案テーブル", dbOpenDynaset) kaizen_rs.FindFirst criteria If kaizen_rs.NoMatch Then MsgBox find_txt & "は見つかりません" Else Do Until kaizen_rs.NoMatch MsgBox find_txt & "を" & kaizen_rs.AbsolutePosition + 1 & "レコード目で見つけました。" kaizen_rs.FindNext criteria Loop End If End Sub ******************************************************************************************************************************************************
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
criteria = field_name & " like '*" & find_txt & "*'" likeの前にブランクが必要です。
その他の回答 (6)
- palmmy
- ベストアンサー率38% (841/2169)
criteria = field_name & "like '*" & find_txt & "*'" かな
補足
そうですね。 *を検索したい文字の両方に付けないと 部分検索できないですよね(^^ゞ でも、訂正して実行したら、 演算子がありませんという エラーが出てしまいます。 そこで、デバックすると kaizen_rs.FindFirst criteria の部分が黄色くなります。 何が原因なのでしょうか。 教えてください。よろしくお願いします。
違ってたらごめんなさい。初心者です。 criteria = field_name & "like'" & find_txt & "'" ↑LIKEのあとにスペースが要りませんか?
補足
ありがとうございます。 私もす~ごく初心者なので、 分からない部分が多いので、みんなのお力を借りたいと思っています。 スペースが入っていました。 でも、訂正して実行したら、 演算子がありませんという エラーが出てしまいます。 デバックすると kaizen_rs.FindFirst criteria の部分が黄色くなってしまいます。 何が原因なのでしょうか。
- palmmy
- ベストアンサー率38% (841/2169)
criteria = field_name & "='" & find_txt & "'" だと一致したデータですよね? 部分的に一致だと like *xxx* とかにしたいといけなくないですか?
補足
そうですね。 参考書に習って、 criteria = field_name & "like'" & find_txt & "'" にしてみたんですけど、 syntax error(missing operation) in expression. というエラーが起こっちゃいました。 一難去ってまた一難です。トホホ。
- palmmy
- ベストアンサー率38% (841/2169)
Visual Basic for Application Microsoft Access ‥ OLE Automation Microsoft DAO ‥ か Visual Basic for Application Microsoft Access ‥ Microsoft DAO ‥ OLE Automation でコンパイルしてみてください。 DAOが上の方に無いとエラーが出ます。
補足
コンパイルエラーが出なくなりました!! 高順位に、教えてもらってないものが入ってました。 ありがとうございます。 しかし。。。テーブルに存在する文字を検索しても、検索に引っかかりません。 もし宜しかったら、一緒に考えてくださいませんか。
- palmmy
- ベストアンサー率38% (841/2169)
Microsoft Accessなのは分かりましたよ^^; で、モジュールを開いて、 [ツール][参照設定]を開くとどうなっていますか?
補足
あっ、すみません。。。 Microsoft DAO 3.6 object Library になってます。
- palmmy
- ベストアンサー率38% (841/2169)
参照設定はどうなっていますか? Visual Basic for Application Microsoft Access ‥ OLE Automation Microsoft DAO ‥ になってますか?
補足
すみません。書き忘れました。 Microsoft Access です。 宜しくお願いします。
お礼
できました(>_<) ありがとうございました。