Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Microsoft 365)
ACCESS VBAでクエリの実行結果を取得できない
投稿日時: 22/09/30 10:52:52
投稿者: rose11

お世話になります。
当方Access初心者です。
以下コードをデバックしながら実行すると、データは338件ある(※)のですが、
「'処理・・・・・・・」のコードに一度も入らず、
「rs.close」にとんでしまいます。
※:イミディエイトウィンドウにて確認しました。
 ?Dcount("*", "Q_3")
   338
--------------------------------------------------------
Private Sub Cmd3_click()
   Dim rs As New ADODB.Recordset
    
   DoCmd.SetWarnings False
   DoCmd.OpenQuery "Q_3", acViewNormal, acReadOnly
   rs.Open "Q_3", CurrentProject.Connection
  
   Do Until rs.EOF
      '処理・・・・・・・
      rs.MoveNext
   Loop
   rs.Close
 
End Sub
--------------------------------------------------------
 
なぜ、「'処理・・・・・・・」に入らないのか理由が分からず、
色々調べてみたのですが、なかなか解決策を見つけられないので、
助けていただけますと幸いに存じます。
どうぞよろしくお願いいたします。

回答
投稿日時: 22/09/30 12:26:49
投稿者: Moko

確認してないけど
 
   DoCmd.OpenQuery "Q_3", acViewNormal, acReadOnly
 
この行、コメントアウトしてみたら?

投稿日時: 22/09/30 13:30:13
投稿者: rose11

Mokoさん、ありがとうございます!
 
「DoCmd.OpenQuery "Q_3", acViewNormal, acReadOnly」
ですが、一度クエリを実行してから、その結果に対して処理をしようと思い書いているのですが、
 
「rs.Open "Q_3", CurrentProject.Connection」
と書くことで、既に実行結果を開いていることになるかご教授いただけますでしょうか?
(さらに質問してしまい、すみません(汗))

回答
投稿日時: 22/09/30 16:11:13
投稿者: sk

引用:
DoCmd.OpenQuery "Q_3", acViewNormal, acReadOnly
rs.Open "Q_3", CurrentProject.Connection

[Q_3]の SQL ビューの内容を明記されることをお奨めします。

回答
投稿日時: 22/09/30 20:18:39
投稿者: hatena
投稿者のウェブサイトに移動

引用:
「DoCmd.OpenQuery "Q_3", acViewNormal, acReadOnly」
ですが、一度クエリを実行してから、その結果に対して処理をしようと思い書いているのですが、

 
DoCmd.OpenQuery "Q_3"

rs.Open "Q_3"
はまったく別物です。
実行する場所がそもそも異なっていますので。
 
ちなみに、DoCmd.OpenQuery で開いたレコードセットに対して処理をするなら、下記のような感じで。
 
    Dim rs As DAO.Recordset
    DoCmd.OpenQuery "Q_3"
    Set rs = Screen.ActiveDatasheet.Recordset
    Do Until rs.EOF
        Debug.Print rs.Fields(0), rs.Fields(1) '先頭2列のデータをイミディエイトに出力
        '処理・・・・・・・
        rs.MoveNext
    Loop
    DoCmd.Close acQuery, "Q_3"

 
上記の結果も教えてください。

投稿日時: 22/10/01 22:47:22
投稿者: rose11

skさん
 
返信が遅れてしまい、すみません。
おかげさまで解決しました。
アドバイスををありがとうございましたm(__)m

投稿日時: 22/10/01 22:52:04
投稿者: rose11

hatenaさん
 
お忙しい中、ご丁寧なご教示をありがとうございます。
返信が遅くなってしまい、すみませんでした。
おかげさまでうまくいきました。
具体的に詳細を記載いただき、大変助かりました。
本当にありがとうございました。

投稿日時: 22/10/05 18:23:46
投稿者: rose11

kosumosudaisuki さんの引用:
hatenaさん
 
お忙しい中、ご丁寧なご教示をありがとうございます。
返信が遅くなってしまい、すみませんでした。
おかげさまでうまくいきました。
具体的に詳細を記載いただき、大変助かりました。
本当にありがとうございました。