![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルからアクセスヘ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 Chrome 背景色?を変えた...
-
【google One】グーグルワンの...
-
MS-IME登録していない候...
-
Googleに登録されたホームペー...
-
電動式草刈機ナフコ規格:GT...
-
URLを記す場合の末尾スラッ...
-
マクロ グーグルモバイル
-
グーグルの検索エンジンに登録...
-
教えて!goo がプラウザ「ファ...
-
一万ドルとは
-
googleplay ギフトカードについて
-
飼い猫30匹に好まれた
-
地元の不良に目をつけられています
-
長い複数の検索語を分割しない...
-
携帯の電話番号から個人を特定...
-
冗談でも叩いたら暴行罪になる...
-
ツールバーとメニューバーの違いを
-
openloadがダウンロード出来ない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Google Colaboratoryでマウント...
-
【google One】グーグルワンの...
-
yahooとgoogleの違いを教えてく...
-
作ったHPが何故検索で出てこな...
-
電動式草刈機ナフコ規格:GT...
-
一万ドルとは
-
明日の北海道旭川の
-
Google Chrome 背景色?を変えた...
-
Googleに登録されたホームペー...
-
Access 選択クエリでの文字列...
-
METAがダメ? 検索したと...
-
検索エンジンのキャッシュの削...
-
VBA ADO 複数条件のフィルタ
-
ホームページ検索
-
トルシア形高力ボルトのトルは...
-
自分の会社のホームページを作...
-
アクセス解析で文字化け「遵ネ」
-
googleplayのブックスからアダ...
-
サイトの登録について
-
google mapにマークをつけた地...
おすすめ情報