2017-05-17 3 views
0

recordset.Find "name =" & me.txtbox.valueを使用しようとしています。特定のレコード/行を検索する。上記のように1変数だけで検索すれば、これを簡単に行うことができます。複数の基準を持つADO Recordset.Findを使用するとランタイムエラー3001

私は他の人がこれをオンラインで行ったことがわかったので、私は次のことを試みました。 traceRecordset.Find "[PART_ID]=" & Me.txtSection.Value & " AND " & "[ID]= " & Me.txtCopy.Value

これは、エラーが特定の値を持つテキストボックスを取り込むときこれは私に多くの柔軟性を与えるだろう、このライン上 Me.txtLastscrap = traceRecordset.Fields("APROPERTY_2")

をスローしません、次のコードの正確な行です。それは他の人が問題なしでこれを試みたようです。ただし、次のエラーが表示されます。

引数が間違った型、許容 範囲外であるか、互いに

任意の考えはと競合していますか?

注:私がtraceRecordset.Find "[PART_ID]=" & Me.txtSection.Valueを実行しても動作し、それもtraceRecordset.Find "[ID]= " & Me.txtCopy.Valueと一緒に機能するので、個別に正しく機能します。一緒に使用された場合のみ、エラーが発生します。タイプが問題だった場合、それらのうちの1つは、単独で使用されたときには正しく動作しませんでしたか?

注2:ここに私のadodb接続ラインがあります。これは何の効果ADO Recordset.Find documentationによると

Set dbTrace = CurrentProject.Connection traceRecordset.Open "Select * from TRACE", _ dbTrace, adOpenKeyset, adLockOptimistic, adCmdText

+0

'me.txtboxnew = recordset.Find" column1 = "&me.txtbox.value&" AND "&" column2 = "&me.txtbox2.value'はエラーを再現しますか?あなたは[mcve]を供給できますか? –

+0

カラムおよび/またはテキストボックスの値のデータ型が重要です。おそらく、値を "recordset.Find"のように引用符で囲むか、単一引用符で囲む必要があります。column1 = '"&me.txtbox.value&"' AND "&" column2 = '"&me.txtbox2.value&"' "' 。これは、Access VBA環境でデフォルトで使用可能なDAOレコードセットとは対照的に、ADOレコードセットですか? –

+0

また、Findメソッドは 'me.txtboxnew'に割り当てることのできる有効なものを返しません。代わりに、見つかった場合には行をマッチに再配置するだけです。 [Find Method ADO](https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/find-method-ado)を参照してください。 –

答えて

2

Dim dbTrace As ADODB.Connection Dim traceRecordset As New ADODB.Recordset、唯一の単一列名を基準に指定することができる

を持っているかどうかわかりません。このメソッド は、複数列の検索をサポートしていません。

...

基準: 列名、比較演算子、および検索に使用する値を指定するステートメントを含む文字列値。


すでにAccessプロジェクト内VBAを書いているので、DAOは、同じようにうまく機能し、Access 2016のように、DAOレコードセットの種類は、フォームやクエリ定義オブジェクトで使用されるデフォルトのままです。 DAOレコードセットは、マルチカラムクエリをすべてサポートするFindFirst、FindNext、FindPrevious、およびFindLastをサポートしています。この単一の機能は、ADOからの切り替えを正当化するものではありませんが、レコードセットの行を開いたり、検索したり、列挙したりするだけであれば、大きな利点はありません。

+0

ああ、これを知らなかった。ご協力ありがとうございました。私はADOからDAOに切り替えるのは大きな変化ではないと思います。私はそれをして、それが私のために働くかどうかを見ます! – Azuraith

+0

私もこのことを直ちに認識していませんでしたが、私は自分の研究をしました...発見するのに時間がかかりませんでした。あなたがコメントに真剣に取り入れて、情報を見直してください...リンクをたどって読んでください。特定のオブジェクトまたはメソッド(つまり関数)に問題がある場合は、ドキュメントにアクセスして詳細を確認してください。 –

関連する問題