
No.2ベストアンサー
- 回答日時:
DAOはMSのデータ(ベース)にアクセスするインターフェイスを提供するオブジェクト(プログラム・ライブラリ。
VB用やC用もある。)である。主に使うのは、データベースエンジンといわれるものであろう。DAOがアクセスを操作すると言う表現でなく、DAOが「アクセスが採用しているデータベース」をアクセスするとき使えるものである。同じく「>EXCELをDAOで操作する」と言う表現はおかしいと思う。なぜなら
エクセルは(1)ディスクに保存されているときのファイル形式と(2)メモリに展開されて動いているメモリ上の形式とは違うし、(3)Vierwerとしての役割で、シートを画面に見せているはたらきも違うはず。
DAOは対象とするのは、データベースファイルであって(1)の部類のもののはずだが、エクセルの(書式や計算式やその他も含まれている特殊独自の形式の)(1)は直接対象としていないはず。
アクセスのMDB形式のような、テキスト的な(?)データファイルを対象としているはず。したがってエクセルよりアクセスに一旦エクスポートして、それを対象にしてDAOを使ってアクセスしたり、加工するということになるはず。
下記は参考になりませんか。
http://www.asahi-net.or.jp/~EI7M-WKT/kakcyo09.htm
http://www.asahi-net.or.jp/~EI7M-WKT/kakcyo10.htm
http://www.asahi-net.or.jp/~EI7M-WKT/kakcyo11.htm
http://www.cs.reitaku-u.ac.jp/~ykago/db_a_2000/d …
http://hp.vector.co.jp/authors/VA021122/vb/dao.h …
回答ありがとうございました。
何だか、表現がおかしかったみたいで申し訳ないです。丁寧に解説していただいてありがとうございました。
やはりMDBに一旦エクスポートしてから操作するみたいですね…。EXCELを直接操作することってできないのでしょうか?
URL参考になりそうです!ありがとうございました。
No.7
- 回答日時:
エクセルのアドインでMSQUERYと言うのがあります。
あまり本にも(WEBにも)出てきませんが、WEB照会してみてください。
http://www1.neweb.ne.jp/wa/arc/vb/QRY/QRY2.html
など。
これ(MSQUERY)など何かのヒントになりませんでしょうか。
見当はずれでしたら、お許し下さい。マクロの記録が取れるかな、もし取れれば一般化する修正が出来て、自分で組むより、記述が簡略になると予想しますが。
No.6
- 回答日時:
肝心なことを書くのを忘れてしまいました。
>すみません、よろしければ"ODBドライバの設定","ユーザDNS","システムDNS"をもう少し詳しく教えてもらえませんか?
>どうやって作成するかだけでもわかれば嬉しいのですが…。
http://www.geocities.co.jp/SiliconValley-PaloAlt …
をどうぞ。
ただ、OSがWin2000やXPだとコントロールパネルの管理ツールの中になります。
あと、WindowsやOfficeのバージョン(正確にはMDACのバージョン)などにより、「ODBC」となっていたり、「データソース(ODBC)」となっていたりしますが、どれも一緒です。
データソースの作り方ってことですと、こちらも参考になるかな?
http://www5.ocn.ne.jp/~fishbird/php4/odbc/
参考URL:http://www.geocities.co.jp/SiliconValley-PaloAlt …
お礼が遅くなりました。回答ありがとうございます。
設定のしかたよくわかりました!
補足説明など親切でとても嬉しかったです。参考にします。
No.5
- 回答日時:
ryuji0202さんの質問とずれてきちゃってますが。
>>VB用とC用の区別はありません
>http://www.ipl.co.jp/private/~kono/dao.html
>のような例も載っていますが。VBA使う上で使うのと
>くらべ、コーディング上で全く同じとは言えないのでは
>ないでしょうか。
このサンプルは純粋なC++のDAOのサンプルではありません。
MFCが提供している、DAOをさらにラップしたクラスを使ったものです。
DAO自体はActiveXオブジェクトなので、C++でもVBでも一緒です。
そもそも、ActiveXは言語に依存するものではありません。
#ADOのサンプルなら結構出てくるんですが、DAOは出てきませんでしたので。
言語の性質上、VBAではValueプロパティなどの省略可能なプロパティも明示的に記述する必要は出てきますが。
No.4
- 回答日時:
#2です。
#3でご指摘の誤りがあるようで済みません。>「DAOはMSの」の個所は直後のMS社製のデータベースに限るように取れますね。ORACLEなどのデータベースにも接続出きるので、そう取られるので、不適当です。「MS社製であって」の積もりでした。済みません。
>VB用とC用の区別はありません
http://www.ipl.co.jp/private/~kono/dao.html
のような例も載っていますが。VBA使う上で使うのとくらべ、コーディング上で全く同じとは言えないのではないでしょうか。
No.3
- 回答日時:
xlsファイルを操作するためのODBCドライバは標準で入っているので、それを利用してDAO経由で操作可能です。
xlsファイルの選択は、ODBCドライバの設定で行います。
ユーザDSN、またはシステムDSNでDSNを作成すれば、あとは、他のDBと同じように扱うことが出来たはずです。
>DAOはMSのデータ(ベース)にアクセスするインターフェイスを
>提供するオブジェクト(プログラム・ライブラリ。VB用やC用もある。)である。
DAO自体は、MicrosoftのDBだけにアクセスするものではありません。
他社のRDB、ISAM、テキストデータなどに対して共通のアクセス方法を提供するミドルウェアです。
DAOにVB用とC用の区別はありません。
回答ありがとうございます!!
すみません、よろしければ"ODBドライバの設定","ユーザDNS","システムDNS"をもう少し詳しく教えてもらえませんか?
どうやって作成するかだけでもわかれば嬉しいのですが…。
本当に知識がなくて申し訳ないです…。
No.1
- 回答日時:
全然参考になるかどうかわかりませんし、
もし実現できたとしても良い案と言えるかどうかわかりませんが、
ひとつの方法として書き込みをします。
MDBにEXCELリンクでリンクテーブルを作ります。
そのMDBファイルに対して、DAOでつなぐのはどうでしょうか?
あんまり良いアドバイスとは言えませんが、
ひとつの案として。。。ヘンなアドバイスですみません。
アドバイスありがとうございます!
今このEXCEL操作でやりたいことが2つあって、1つは環境にACCESSもEXCELもある状態でもうひとつは環境にEXCELしかない状態のものです。
前者にたいしてアドバイスいただいたこと試してみたいと思います。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
『ファイルの上書きの確認』ダ...
-
特定のエクセルファイルを起動...
-
tmpファイル なぜできる?削除...
-
拡張子が「cda」のファイルを聞...
-
Access VBA を利用して、フォル...
-
access関数を説明できる方いま...
-
仕事のファイルを共有フォルダ...
-
ファイルが違うエクセルを1つ...
-
特定のフォルダに入れたファイ...
-
Mac・Winでファイル名チェック...
-
batファイル、コマンドプロンプ...
-
データベースへアクセス
-
Excelが開かない
-
共有フォルダに誰が何にアクセ...
-
拡張子monoファイルとDreamweav...
-
Batch: フォルダ内の特定のファ...
-
AccessVBAで作成したExcelファ...
-
excelを共有ファイルにすると行...
-
月が変わったら自動でシートが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
共有フォルダに誰が何にアクセ...
-
Access VBA を利用して、フォル...
-
VBAでCSVファイルが使用中かど...
-
AccessVBAで作成したExcelファ...
-
(Excelマクロ)datファイルをエ...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
社内Excel共有ブックでの保存ト...
-
tmpファイル なぜできる?削除...
-
拡張子が「cda」のファイルを聞...
-
WEBクエリが使えない場合のHPデ...
-
月が変わったら自動でシートが...
-
Excel VBA 処理後データが重た...
-
ファイルの途中に文字列を挿入
-
相手のPCにVBAからメッセ...
-
mdbファイル フォームを開くと...
-
大量のCSVデータを行列の変換を...
おすすめ情報