• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2000/2002フォームのレコードセットについて)

Access2000/2002フォームのレコードセットについて

このQ&Aのポイント
  • Access2002で作り直す必要があるAccess97のプログラムのVBAコーディングをADOに変更する方法
  • Access2000/2002フォームのレコードセットを取り扱う方法についての一般的なルールやアドバイス
  • Access2000/2002フォームのRecordSetがDAOなのかADOなのかについての情報が分からない

質問者が選んだベストアンサー

  • ベストアンサー
noname#5584
noname#5584
回答No.1

今、手元にAccessがないので、憶測半分のコメントになりますが・・・。 Access 2000/2002でもDAOは全廃になるわけではありません。 DoCmd.OpenQueryメソッド、DoCmd.RunSQLメソッド、CurrentDbオブジェクト等は、2000/2002でもDAOで動作し、Access97の構文がそのまま使えます。 ( これらを使用するとき、DAO 3.5x / 3.6への参照を追加する必要はありません ) > Set rs = Me.RecordsetClone これがどうなるか、とのことですが、 rsを Dim rs As DAO.Recordset のようにDAOの型指定で宣言して、上記の記述が実行時エラーにならなければ、Me.RecordsetClone はDAO.Recordset型であり、実行時エラー13(型が一致しません)になるようであれば、ADODB.Recordset型です。 オブジェクトの型は、TypName関数やエディタの入力補完機能、オブジェクトブラウザ、ヘルプ、MSDN等でも確認できます。 > これは、ADOでは、どのように置き換えを考えていけばよいのでしょうか? もし、Me.RecordsetClone が DAO.Recordset 型なら、ADOに変換することはできません。 「すべてADOに変換」、とのことですが、前述の通り、   DoCmd.OpenQueryメソッド   DoCmd.RunSQLメソッド   CurrentDbオブジェクト はDAOなので、対応できません。 「ない袖は振れない」ということです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado.asp は勿論ご覧になられましたでしょうね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • レコードセットについて

    Public rs1 As DAO.Recordset Public rs2 As ADODB.Recordset Public rs3 As Recordset 最近ADOを勉強し始めた物です。 この3つのASの後ろの部分は何が違うのでしょうか? 上からDAO用、ADO用まではなんとなくわかるのですが一番下は何用でしょうか? よろしくお願いします。

  • Access レコードの移動

    ADP形式(Access2003)で社内システムを作っています。 質問なのですが・・・ 帳票形式のフォーム(商品マスタ)があります。フォームヘッダーにテキストボックス(名前:検索コード)あり、ここに商品コードを入力すると、該当するレコードへブックマークが移動します。 MDBのときは・・・   Dim ds As Recordset Set ds = RecordsetClone ds.FindFirst "[商品コード]='" & Me![検索コード] & "'" Bookmark = ds.Bookmark 以下省略 これで動作したのですが、ADPではエラーになります。 ADOになっているからでしょうか?

  • アクセスでコードを使って日付からレコードの検索ができません。

    Dim rs As DAO.Recordset Set rs = Me.RecordsetClone rs.FindFirst "生年月日 = #1968/05/03#" 上の場合は問題ないのですが、次の様に、捜そうとする日付を変数にするとどうしても rs.NoMatch = true になってしまいます。 どうしてでしょうか。アクセスは2002、OSは2000です。 Dim Abc As Date Abc = "1968/05/03" rs.FindFirst "生年月日 = " & Abc

  • フォームで1レコード削除したのに表示は残ったまま更新されない

    Accessフォーム(表形式)に[削除]ボタンをつけました。 VBAで削除ボタン_Click()を書きました。 ADO接続 SQL発行し、該当レコード削除 (Delete from 予約 where 予約ID= me.予約ID ) というコードです。 削除後も、フォームにはレコードが見えたままなのですが、表示を更新するにはどうしたら良いのでしょうか? ----------------------------------- Set rs = Me.Recordset.Clone '' 予約テーブルからレコード削除処理 ... Me.Requery ----------------------------------- というやり方は、DAOだそうですね。 ADOではフォームのレコードソースを指定できないと参考書にありました。 しかし、DAOでは Delete SQL 発行の仕方がわからないので、できればADOで実現したいのです。 無理でしょうか?

  • 空欄を含む項目のレコードセット

    Access 2003 DAO.Recordsetにてデータを取得しようと思うのですが テーブル項目に空欄がある場合はどのように書けばよろしいのでしょうか? Dim DB As DAO.Database Dim RS As DAO.Recordset Set DB = CurrentDb Set RS = daoDB.OpenRecordset("Aテーブル", dbOpenDynaset) RS.AddNew daoRS!ああ ああ = xx RS!Update ・・・ とするとエラーになります。 項目名"ああ ああ"はどのように書けばいいのでしょうか? よろしくおねがいします。

  • サブフォームのレコードセットをメインフォームで処理したい

    [Access2003] サブフォームのレコードソースをメインフォームでレコードセットとして取得し、処理したいと思い、 Private Sub cmd選択_Click() Dim RS As New ADODB.Recordset Set RS = Me!F_Sub.Form.RecordsetClone End Sub とやってみたのですが、型が一致しません。"とエラーになります。 WEB上でのサンプルも上のコードでいけるような感じで説明がありましたが何が問題なのでしょうか?

  • Access レコードを分割してフォームで表示

    Access 2007です。 下記のような日記テーブルがあり、 その「行動」フィールドの中身を「●」の記号で レコードに分割して、 フォームに表示したいと思っています。 日記テーブル ID 年月日   天気  行動 1 2014/1/10  晴  ●読書。●新聞を読む。●散歩。 2 2014/1/11  曇  ●電車に乗る。●新年会。●庭の手入れ。●カラオケ。 3 2014/1/12  曇  ●昼寝。 4 2014/1/13  雨  ●買い物。●読書。 ・・・・ 結果フォーム(データシートビュー)で表示 年月日    行動 2014/1/10  読書。 2014/1/10  新聞を読む。 2014/1/10  散歩。 2014/1/11  電車に乗る。 2014/1/11  新年会。 2014/1/11  庭の手入れ。 2014/1/11  カラオケ。 2014/1/12  昼寝。 2014/1/13  買い物。 2014/1/13  読書。 もとの日記テーブルのデータは変更しません。 下記のように、VBAのコードの中で、 レコードセットを使えば、上記のようなレコードの分割ができると思うのですが、 うまくいきません。 rs2というレコードセットをどうやって作成すればいいのかわかりません。 (Set rs2 = DB.OpenRecordset ・・・ のような行が必要ではないか、と思うのですが、 そのやり方がわかりません。) やり方を教えていただけたら幸いです。 Dim DB As DAO.Database Set DB = CurrentDb() Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Set rs1 = DB.OpenRecordset("日記テーブル", dbOpenForwardOnly) Dim A As Variant Do Until rs1.EOF A = Split(rs1!行動, "●") For i = 1 to UBound(A) rs2.AddNew rs2!年月日 = rs1!年月日 rs2!行動 = rs1!A(i) rs2.Update Next i rs1.MoveNext Loop DoCmd.OpenForm "結果フォーム" Set Forms!結果フォーム.Recordset = rs2

  • レコードセットの結合

    A.MDBからRS_Aというレコードセット、B.MDBからRS_Bというレコードセットを作成し、このふたつのレコードセットを一つにしたいと思います。 これは可能でしょうか? どのような方法を採ればよろしいでしょうか? とりあえずはDAOで予定しています。 よろしくお願いします。

  • Access のADOのrecordset

    Access VBA でのrecordset はDAOとADOがあります。 DAOの場合recordsetからrecordsetを作成できました。 つまり、日本からある県を選び出し、その中から10代の人を選び出せました。 ところが、ADOの場合それができません。ある県の10代の人を選び出そうとしても、 結果的に全日本の10代の人となってしまいます。 例として RD1.Filter = "購入日># " & DateAdd("yyyy", -1, Date) & "#" Set RD2 = RD1.OpenRecordset この「RD2」という新しいrecordsetができます。 RD2は購入日が今日から1年前の1つのファイルとしてsetされます。 この中から山田さんの売り上げを集計することができます。 ところが、ADOの場合下記のように書いて、 str = RS!ブランド RS.Filter = ("ブランド = " & "'" & str & "'") RS.MoveFirst str = RS!名前 RS.Filter = ("名前 = " & "'" & str & "'") 上はある雑貨店のDBですが、あるブランドを抽出します。次にその中から、ある顧客の売り上げを集計する場合、結局全ブランドの”田中さん”になってしまいます。 要は、最初にブランドで抽出した意味がないのです、 ADOでDAOのようにrecordsetからrecordsetを作る方法はないのでしょうか? ADOの書き換えるのはMSのQSLserverがDAOの対応してないからです。

  • マイクロソフトアクセスでDATAを1件毎に読む

    モジュールで書かなければいけないのは、分かります。サンプルコーディングをお願い出来ないでしょうか。 また、DAOかADOなのか分かりませんがADDonはどうするのでしょうか 古くて申し訳ないのですがAccess 2002です。 何卒お願いします。

MFC-J887Nでインク切れ表示
このQ&Aのポイント
  • MFC-J887Nでインク切れ表示が出た際の対処方法とは?
  • MFC-J887Nで純正カートリッジを交換してもインク切れ表示が解消されず、印刷ができないという問題が発生しています。
  • お使いのMFC-J887Nでインク切れ表示が出ており、純正カートリッジを交換しても解決されない場合は、以下の対処方法を試してみてください。
回答を見る

専門家に質問してみよう