• ベストアンサー

コンパイルエラーが出ます。助けて下さい。

初歩的な質問ですみません。 参考書を参考に検索する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 ******************************************************************************************************************************************************

質問者が選んだベストアンサー

  • ベストアンサー
  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.7

criteria = field_name & " like '*" & find_txt & "*'" likeの前にブランクが必要です。

_shino_
質問者

お礼

できました(>_<) ありがとうございました。

その他の回答 (6)

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.6

criteria = field_name & "like '*" & find_txt & "*'" かな

_shino_
質問者

補足

そうですね。 *を検索したい文字の両方に付けないと 部分検索できないですよね(^^ゞ でも、訂正して実行したら、 演算子がありませんという エラーが出てしまいます。 そこで、デバックすると kaizen_rs.FindFirst criteria の部分が黄色くなります。 何が原因なのでしょうか。 教えてください。よろしくお願いします。

noname#20001
noname#20001
回答No.5

違ってたらごめんなさい。初心者です。 criteria = field_name & "like'" & find_txt & "'" ↑LIKEのあとにスペースが要りませんか?

_shino_
質問者

補足

ありがとうございます。 私もす~ごく初心者なので、 分からない部分が多いので、みんなのお力を借りたいと思っています。 スペースが入っていました。 でも、訂正して実行したら、 演算子がありませんという エラーが出てしまいます。 デバックすると kaizen_rs.FindFirst criteria の部分が黄色くなってしまいます。 何が原因なのでしょうか。

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.4

  criteria = field_name & "='" & find_txt & "'" だと一致したデータですよね? 部分的に一致だと like *xxx* とかにしたいといけなくないですか?

_shino_
質問者

補足

そうですね。 参考書に習って、 criteria = field_name & "like'" & find_txt & "'" にしてみたんですけど、 syntax error(missing operation) in expression. というエラーが起こっちゃいました。 一難去ってまた一難です。トホホ。

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.3

Visual Basic for Application Microsoft Access ‥ OLE Automation Microsoft DAO ‥ か Visual Basic for Application Microsoft Access ‥ Microsoft DAO ‥ OLE Automation でコンパイルしてみてください。 DAOが上の方に無いとエラーが出ます。

_shino_
質問者

補足

コンパイルエラーが出なくなりました!! 高順位に、教えてもらってないものが入ってました。 ありがとうございます。 しかし。。。テーブルに存在する文字を検索しても、検索に引っかかりません。 もし宜しかったら、一緒に考えてくださいませんか。

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.2

Microsoft Accessなのは分かりましたよ^^; で、モジュールを開いて、 [ツール][参照設定]を開くとどうなっていますか?

_shino_
質問者

補足

あっ、すみません。。。 Microsoft DAO 3.6 object Library になってます。

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.1

参照設定はどうなっていますか? Visual Basic for Application Microsoft Access ‥ OLE Automation Microsoft DAO ‥ になってますか?

_shino_
質問者

補足

すみません。書き忘れました。 Microsoft Access です。 宜しくお願いします。

関連するQ&A