![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
エクセルからアクセスヘADOで接続し、レコードをエクセルに書き出しています。
アクセスのTPWIDには、
「URL」フィールド(テキスト型)
「終了」フィールド(YesNo型)
があります。
(主キーは他のフィールド)
エクセルVBAで
---------------------------------------------------------
Sub test()
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\テーブルのみ.mdb"
RS.Open "SELECT * FROM TPWID", CN, adOpenStatic, adLockOptimistic
RS.Filter = "終了 = " & False
RS.Close: Set RS = Nothing
End Sub
---------------------------------------------------------
とする分には問題なくできますが、実際行いたい行為は下記なのですが
RS.Filter の部分で、
「実行時エラー 3001 引数が間違った型、許容範囲外、又は競合しています」
と言うエラーになってしまいます。
---------------------------------------------------------
Sub test()
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\テーブルのみ.mdb"
RS.Open "SELECT * FROM TPWID", CN, adOpenStatic, adLockOptimistic
RS.Filter = "URL = '" & "www.yahoo.co.jp" & "' or URL = '" & "www.google.co.jp" & "' And 終了 = " & False
RS.Close: Set RS = Nothing
End Sub
---------------------------------------------------------
RS.Filter = "URL = '" & "www.yahoo.co.jp" & "' or URL = '" & "www.google.co.jp" & "' And 終了 = " & False
を
RS.Filter = "URL = '" & "www.yahoo.co.jp" & "' and URL = '" & "www.google.co.jp" & "' And 終了 = " & False
にすれば、エラーは発生しませんが
その次のコードを実行しようとすると
「実行時エラー'3021' BOFとEOFのいずれかTRUEになっていか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。」
となってしまいます。
MsgBox RS.RecordCount
で件数を取得したら0件なので、それでエラーになります。
条件としては、
URLフォールドでは
・www.yahoo.co.jp
・www.google.co.jp
のどちらかの文字列を含み、なおかつ
終了フィールドにチェックがついてない(値は0)
です。
ご教授よろしくお願いします。
No.3ベストアンサー
- 回答日時:
フィルターに文字列として渡さなくてはいけないので
RS.Filter = ("URL = 'www.yahoo.co.jp' And 終了 = " & False) Or ("URL = 'www.google.co.jp' And 終了 = " & False)
↓
RS.Filter = "(URL = 'www.yahoo.co.jp' And 終了 = " & False & ") Or (URL = 'www.google.co.jp' And 終了 = " & False & ")"
じゃないですか?未検証です。
RS.Filter = "(URL = 'www.yahoo.co.jp' And 終了 = " & False & ") Or (URL = 'www.google.co.jp' And 終了 = " & False & ")"
で出来ました!!!ありがとうございました。
No.2
- 回答日時:
Officeのバージョンはいくつでしょう。
2010ではAccessでもExcelでもVBEの画面でヘルプ(F1キー)で
論理演算子で調べると、『演算子の優先順位』の説明が有ります。
算術演算子(+-*/)の
1+2*3 ≠ 9 、1+2*3 = 7 と同様に
論理演算子ではAnd が先に評価されその後で Or を評価します。
なので
・www.yahoo.co.jp
・www.google.co.jp
のどちらかの文字列を含み、なおかつ
終了フィールドにチェックがついてない(値は0)
はイメージ的には(手抜き回答ですが)
yahoo OR google AND false では、
google AND false の評価を行い、
『それから得たもの』 OR yahoo の評価に進みます。
ですので、
(yahoo AND false) OR (google AND false) のように組み立てる必要が有ります。
ご回答ありがとうございます。
説明不足ですいません。バージョンは2007です。
演算子の優先順位をよく見て考えるべきでしたね。
ちなみに
RS.Filter = ("URL = 'www.yahoo.co.jp' And 終了 = " & False) Or ("URL = 'www.google.co.jp' And 終了 = " & False)
にしてみたのですが
「型が一致しません。(Error 13)」になってしまいます。
何が間違ってるのでしょうか?
再度ご回答頂ければ幸いです。よろしくお願いします。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エラー処理 3 2022/04/11 14:58
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Google Colaboratoryでマウント...
-
【google One】グーグルワンの...
-
googleのキャッシュを削除する方法
-
ペンチ
-
Google Chrome 背景色?を変えた...
-
あるメルアドが怪しいメルアド...
-
飼い猫30匹に好まれた
-
みなさんが嫌いな人にしたこと...
-
ASUSの会員登録に関して
-
買取のおたからやは反社からな...
-
SSDにTRIMをしたいのですがSSD...
-
地元の不良に目をつけられています
-
Google検索結果を全部見たいです
-
団地の上に住む60代独居男性か...
-
グーグル検索について教えて下...
-
自動再生するmidiファイルの、...
-
私立探偵になるには?
-
冗談通じない人って珍しいですか?
-
私も、勝手にgoogle画像検索に...
-
高齢の歯科女医さんからの嫌が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Google Colaboratoryでマウント...
-
【google One】グーグルワンの...
-
電動式草刈機ナフコ規格:GT...
-
ペンチ
-
坂田知美さんについて。
-
家族の周期について。。。
-
googleの欠点
-
PICASAのタグの一括編集方法は...
-
退職のプレゼントをブレーンス...
-
MS-IME登録していない候...
-
Googleマップの口コミの削除
-
届かないので写真はないんです...
-
現在出版されている個人情報誌は?
-
アドセンスに関して
-
google ツールバーの変な記号
-
yahooだけ2月以降アクセスが激...
-
googleの検索サイトへの登録が...
-
グーグルの個人情報の画像を削...
-
チタンの陽極酸化発色装置
-
自分の回答の検索方法を教えて...
おすすめ情報