OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

EXCEL2000のVBAで*.dbf形式データからデータを抽出するには(ODBCとの連携について)

  • すぐに回答を!
  • 質問No.137672
  • 閲覧数777
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 32% (51/157)

こんにちは

「データベースなら任せて!!」
という方におたずねします。

最近、EXCEL2000のVBA講習をやることになりました。
VBAの基本的な説明はできるのですが、困ったことに外部データとのやり取りについては
うまく説明できません。

いろいろ調べてますが、よくわかりません。

やりたいことは、

複数のデータベースファイル(*.dbf)があります、
それをEXCEL上でフォームパネルを用意しデータを抽出・検索などできるように
制御したいのですが、

まず、
疑問(1)ODBCやSQLをVBAを使って制御しデータベースファイル(*.dbf)を扱うには。
疑問(2)データベースファイル(*.dbf)を扱えたとしてその後、どのように抽出や検索をさせるのか。

おたすけください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル8

ベストアンサー率 45% (18/40)

私はdBASEを使用したことがないので(dbfってdBASEですよね?)、
一般的にODBCを使用する方法を書きます。
参考にできるところがあれば幸いです。
ただし、ご質問の内容に回答しようと思うと本が書けますので・・・^^;
全体の流れでご勘弁を・・
>(1)ODBCやSQLをVBAを使って制御しデータベースファイル(*.dbf)
>を扱うには。
まず、Excelからデータベースまでの経路を簡単に書きます。
Excelシート
 ↓↑
ExcelVBA
 ↓↑
ADOもしくはDAO
 ↓↑
ODBC
 ↓↑
データベース

まず、この経路を確保する必要があります。
ここで要求されること。
1・ODBCドライバの設定
2・ExcelVBAがADOかDAOを使えるようにする設定
3・VBAからADOかDAOを使用して、ODBC経由でdBASEデータベースを開く方法
(1、2は設定、3はVBAで記述)
なぜADOやDAOというものを使うのかというと、Excel単体のVBAの機能では、外部データベースとやり取りする能力がないからです。
ない機能なら、借りちゃえってことです。
1から3までがすべてうまくいけば、Excelからデータベースまでの1本の道ができたことになりますので、その道を使って、データのやり取りが可能になります。

>(2)データベースファイル(*.dbf)を扱えたとしてその後、どのように抽出
>や検索をさせるのか。
(1)の結果、経路は確保できていますから、要求を出して、結果を受け取ることをやればいいことになります。
要求を出すには?→SQL文を使いましょう。
結果をもらうには?→レコードセット(RecordSet)変数を使いましょう。

基本的なSQL文はSQL文が使用できるデータベースなら同じなので、問題ないと思います。
レコードセット変数というのは、SQL文で要求した結果のデータというのも、縦横のテーブル構造になってますので、それを受け取るためのものです。
これは、ExcelVBAにはなく、ADOやDAOの機能になります。
レコードセットにデータが入ったら、あとはエクセルのシートにぺったんぺったん張ってください。
実際のレコードセット変数にデータを受け取るまでのコードは、一番単純なモデルにすると3~4行ぐらいですみます。
(これだけ書いておいて・・・・^^;)

ほかの設定ができているとして、
DAOの場合
Dim DB As Database
Dim Rec as Recordset

Set DB = DBEngine.WorkSpace(0).OpenDataBase('ここに接続する設定を入れます')
Set Rec = DB.OpenRecordSet('ここにSQL文が入ります')
あとは、Recからデータを貼り付けるだけ。
ADOはちょっと手元に資料がないので・・・
あまりお役に立たないような内容ですいません^^;
調べたり質問したりする方向性にでもお役に立てればと思います。

調査する対象が多いので大変かと思いますが、がんばってください。
補足コメント
hooma

お礼率 32% (51/157)

アドバイスありがとうございます。

確かに今回の質問を説明するとなると本が書けるでしょうね。全体の雰囲気はわかりましたが、「ADOやDAO」はどこから導入すればよろしいのでしょうか。
SQLは少しかじったので、なんとかなりそうですが、ADOやDAOがよくわかりません。
投稿日時 - 2001-09-22 11:50:39
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル8

ベストアンサー率 38% (10/26)

かなり専門的な内容ですね。 以下のFAQページをお勧めします(^。^) 私もかなりお世話になったページです。 ...続きを読む
かなり専門的な内容ですね。
以下のFAQページをお勧めします(^。^)
私もかなりお世話になったページです。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ