プロが教えるわが家の防犯対策術!

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

******************************************************************************************************************************************************

A 回答 (7件)

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



likeの前にブランクが必要です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/08/16 12:55

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



かな

この回答への補足

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

補足日時:2004/08/16 10:03
    • good
    • 0

違ってたらごめんなさい。

初心者です。

criteria = field_name & "like'" & find_txt & "'"

↑LIKEのあとにスペースが要りませんか?

この回答への補足

ありがとうございます。
私もす~ごく初心者なので、
分からない部分が多いので、みんなのお力を借りたいと思っています。

スペースが入っていました。
でも、訂正して実行したら、
演算子がありませんという
エラーが出てしまいます。
デバックすると
kaizen_rs.FindFirst criteria
の部分が黄色くなってしまいます。
何が原因なのでしょうか。

補足日時:2004/08/16 09:56
    • good
    • 0

  criteria = field_name & "='" & find_txt & "'"


だと一致したデータですよね?
部分的に一致だと

like *xxx*

とかにしたいといけなくないですか?

この回答への補足

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

補足日時:2004/08/15 05:32
    • good
    • 0

Visual Basic for Application


Microsoft Access ‥
OLE Automation
Microsoft DAO ‥

Visual Basic for Application
Microsoft Access ‥
Microsoft DAO ‥
OLE Automation

でコンパイルしてみてください。
DAOが上の方に無いとエラーが出ます。

この回答への補足

コンパイルエラーが出なくなりました!!
高順位に、教えてもらってないものが入ってました。
ありがとうございます。

しかし。。。テーブルに存在する文字を検索しても、検索に引っかかりません。
もし宜しかったら、一緒に考えてくださいませんか。

補足日時:2004/08/15 04:44
    • good
    • 1

Microsoft Accessなのは分かりましたよ^^;



で、モジュールを開いて、
[ツール][参照設定]を開くとどうなっていますか?

この回答への補足

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

補足日時:2004/08/15 04:19
    • good
    • 0

参照設定はどうなっていますか?



Visual Basic for Application
Microsoft Access ‥
OLE Automation
Microsoft DAO ‥


になってますか?

この回答への補足

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

補足日時:2004/08/15 04:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す