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
'me.txtboxnew = recordset.Find" column1 = "&me.txtbox.value&" AND "&" column2 = "&me.txtbox2.value'はエラーを再現しますか?あなたは[mcve]を供給できますか? –
カラムおよび/またはテキストボックスの値のデータ型が重要です。おそらく、値を "recordset.Find"のように引用符で囲むか、単一引用符で囲む必要があります。column1 = '"&me.txtbox.value&"' AND "&" column2 = '"&me.txtbox2.value&"' "' 。これは、Access VBA環境でデフォルトで使用可能なDAOレコードセットとは対照的に、ADOレコードセットですか? –
また、Findメソッドは 'me.txtboxnew'に割り当てることのできる有効なものを返しません。代わりに、見つかった場合には行をマッチに再配置するだけです。 [Find Method ADO](https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/find-method-ado)を参照してください。 –