- ベストアンサー
ADO DAO ADOX 目的による使い分け
ADOとADOXの利用目的は、 ADO→レコードの追加、編集、削除 ADOX→テーブル、フィールド、クエリの追加、編集、削除 と認識しています。 では DAOはなんでしょう?
- lkhjlkhjlk
- お礼率99% (737/741)
- オフィス系ソフト
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
私も詳しいわけではありませんが(汗) > ではDAOはなんでしょう? こちらのサイトが端的でわかりやすいかと思います。 http://homepage2.nifty.com/inform/vbdb/daoado.htm ADOでは対応できずDAOを使用する必要があるものの例としては、 実際に起動しているのとは別のmdbファイルに対する、 『起動時の設定』で指定できるオプション群の設定値の変更が あります。 (ADOXで対応可能なのかは知らないのですが(汗)) 例えば、「通常はShiftキーを押しながら起動してもデータ ベースウィンドウを見ることができないが、専用ツール(→ 上記『起動時のオプション』を変更する)を介して起動すると データベースウィンドウを表示する」といったシステムを Accessで作る場合には、DAOが必要になります。 (もしかしたらADOXでは対応できるのかもしれませんが、 そちらについては私は知らないので・・・(汗)) 以下は、上記の例に興味がわいた場合の参考までに。 <Shiftキー無効化のコード> http://www.remus.dti.ne.jp/~shenron/access/knowhow/secure2.html <別のmdbファイルの操作> http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGnrlHowToAttachExternalMdb.html
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
んにちは。 私は、あまり詳しいことを知っているのではなくて、実際に使うだけです。DAO は、以前は使いましたが、Office 2000 以降は、マニュアルでは、ADOが主流だということで、ADOに替えただけなのです。(私の場合は、明確な使用感とか目的というのではなく、スタイルだけの問題なのです) 私は、あえてDAOを使ったときのことですが、Office 97 とか 95のデータとかデータにアクセスする場合に、DAOの「Compatibility」を設定するのだと書いてあった覚えがありますね。下位互換性があるからです。 ADOとDAOと同じ機能を持つコードを書くと、DAO の方が簡単に済んだ覚えがいます。(以下ではあまり区別がないように見えると思うでしょうけれど) VBAで非表示のブックからシートの名前だけ抽出する方法 http://oshiete1.goo.ne.jp/qa4028153.html ここでは、DAO 3.6 にしているので、Office 97 以上になっています。 データアクセス・オブジェクト:DAO入門講座 http://www.accessclub.jp/dao/index.html
お礼
ありがとうございます! DAOとADOは同じようなものなのですね。 大変参考になりました。
関連するQ&A
- DAO・ADO・ADOXの正しい読み方
DAO→ダオ?ディーエーオー? ADO→アド?アーディーオー? ADOX→エーディーオーエックス? 正しい読み方をご存知の方教えてください。
- 締切済み
- その他(データベース)
- ASPファイルでADOとDAOを同時に使える?
ASPファイルでADOとDAOを同時に使えるでしょうか? またADOXではADOで補えない機能(DAOでは使える機能)を使うことが可能でしょうか?
- 締切済み
- Microsoft ASP
- ADOとDAOの違い
Access2000を使っています。今でもレコードセットオブジェクトを 取得するのにDAOを使っているのですが、ADOに移行した方がよい のでしょうか。ADOのDAOに対するメリットはなんでしょうか。また デメリットはあるでしょうか。 基本的なことかと思いますがどうぞよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- AccessVBAでADOとDAOとDoCmd
いつもお世話になっています。access超初心者です。 いろいろまちがっているかもしれませんが、よろしくお願いします。 フォームやクエリを使うのにDoCmd、検索はSQL文、 テーブルとの接続やデータの追加はDAOですが、 Access以外のデータベースの値も必要なのでADOも使用して・・・と考えています。 たとえば、データがあるかを確認するにはフォームを開き、そこのテキストボックスに探すデータを入力、ボタンをクリックすると DoCmdで表示用フォームを用意、SQL文で検索、DAOで検索結果を表示・・・としていますが、このように一つのデータベースを作成するのに、DoCmdやDAOやADOの使用が入り乱れてもよいのでしょうか? まったく知識がなく学習本を頼りにしていますので、ツギハギだらけになってしまっているのでは?と不安です。 アドバイスのほど、よろしくおねがいいたします。
- 締切済み
- その他MS Office製品
- エクセルに対してADOXで操作する事はありえますか
ADOXはアクセスでフィールドの追加などを行うプログラミング言語だと思っていますが エクセルに対してADOXで操作する事はありえますか? ADOはエクセルでもアクセスでも使えるので 疑問に思いました。
- ベストアンサー
- その他(データベース)
- チェックボックスの値を新規でレコードへ格納したい(Access2003 ADO)
宜しくお願いします。 Access2003(WinXP)です。ADOで書いています。 テーブルへ新しいレコードを作成していれる時と 既にあるレコードへの編集なのですが、 新規の時は AddNew を書くだけで 他は同じコードを利用しています。 テキストボックスやコンボボックスの値は入るのですが チェックボックスのTrue、Falseのところで 新規の時だけエラーになります。 編集の時は大丈夫です。 rs.Fields("フィールド名").Value = Form.チェックボックス名.Value と入れているのですが、いけないのでしょうか。 ちなみにDAOで書いていたのを途中でADOに変えています。 rs.Fields!フィールド名= としてもだめでした。 分かる方、お願いします。
- ベストアンサー
- オフィス系ソフト
- DAOでのコードをADOへ書き直し
Access2003、WinXPです。 レコードセットの取得関係をDAOで書いていたのですが ADOに途中から変更しました。 変数宣言を Public db As DAO.Database ⇒Public cn As ADODB.Connection Public rs As DAO.Recordset ⇒Public rs As ADODB.Recordset Public Fld As DAO.field ⇒Public Fld As ADODB.field レコードセット取得を Set db = CurrentDb Set rs = db.OpenRecordset(strSQL) ↓ Set cn = CurrentProject.Connection Set rs = New ADODB.Recordset rs.Open strSQL, cn レコードセット クローズを Set rs = Nothing Set db = Nothing ↓ rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing としました。今のところ動いているようですが、 何か勘違い、気をつけないといけない事等ありますでしょうか・・・?
- 締切済み
- オフィス系ソフト
- ADOはプログラミング言語ですか?
アクセスVBAを勉強中なのですが VBAはプログラミング言語だと思っていますが ADOもプログラミング言語なのでしょうか? VBAと言うカテゴリーに ADO DAO ADOX が入っていて プログラミング言語とは言わないのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- DAOのTableDefs("TblName").ConnectはADOでは
ACCESS2002でDAOを使ってTableDefs("TblName").ConnectでリンクテーブルのPATHとFILE名を取得しています。 こういうことをADOでできませんか?よろしくお願いします。
- ベストアンサー
- その他(データベース)
- 追加クエリでテーブル全体を指定したまま条件を追加したい
ACCESS2000を使ってます。 追加クエリでレコード追加の元となるテーブル全体を選択してます。 クエリのフィールド:テーブル名称.*と指定していますが、テーブルに追加する条件として、西暦4桁が格納されている「NENNDO」フィールドに2006だけのレコードを追加したいです。 クエリのデザインでフィールド:テーブル名称.*と指定されている状況で「NENNO」フィールドを追加して抽出条件に2006を指定して実行すると「出力先が重複しています」と表示されます。 追加クエリの対象テーブルが沢山あって、レコード追加先がOracleとなっているのでテーブルを削除せずにACCESSの削除クエリと追加クエリでレコードの作業したいと思っております。 フィールド:テーブル名称.*としたまま、テーブルに追加する条件だけを設定する方法をご教授願います。 (フィールドは、*ではなく、フィールド全てを1つづつ指定しないといけないのでしょうか?)
- 締切済み
- オフィス系ソフト
お礼
おお!これはすごく参考になります!ありがとうございます。