Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13571 / 13644 ツリー ←次へ | 前へ→

【4777】データベースについて sakura 03/4/7(月) 1:50 質問
【4779】Re:データベースについて りん 03/4/7(月) 4:08 発言
【4785】Re:データベースについて Kein 03/4/7(月) 15:53 回答
【4786】Re:データベースについて reizo 03/4/7(月) 16:38 発言
【4788】Re:データベースについて sakura 03/4/7(月) 19:03 お礼
【4789】Re:データベースについて Kein 03/4/7(月) 21:00 回答
【4790】Re:データベースについて Kein 03/4/7(月) 21:04 発言
【4791】Re:データベースについて sakura 03/4/7(月) 21:40 お礼

【4777】データベースについて
質問  sakura  - 03/4/7(月) 1:50 -

引用なし
パスワード
   会社で顧客情報のデータベースを作るのですが、ACCESSかEXCELのどちらで作ろうか迷っています。
以前はEXCELで作りました。機能にはまったく問題がなかったのですが、会社ではEXCELで作業することが多く、データベースを立ち上げているときは他のEXCELの作業ができないことがわかりました。
そのため、今回はACCESSで作ろうと思っているのですが、入手したばかりで使い方が良くわからず不安です。
どうにかしてEXCELでうまく作れないものでしょうか?
いい方法があったらどなたかご教授ください。お願いします。

【4779】Re:データベースについて
発言  りん E-MAIL  - 03/4/7(月) 4:08 -

引用なし
パスワード
   sakura さん、こんばんわ。

>会社で顧客情報のデータベースを作るのですが、ACCESSかEXCELのどちらで作ろうか迷っています。
>以前はEXCELで作りました。機能にはまったく問題がなかったのですが、会社ではEXCELで作業することが多く、データベースを立ち上げているときは他のEXCELの作業ができないことがわかりました。

 作業ができないということは、エラー回避のためにメニューバーを消していたり、複数ブック起動をできなくしていたりすると言うことなのでしょうか?
 エクセルで作ったDBをいちいち閉じてはだめなのですか?
 必要時に開くようにしてもそんな手間でもないと思うのですけど。

【4785】Re:データベースについて
回答  Kein  - 03/4/7(月) 15:53 -

引用なし
パスワード
   Accessを使うかExcelのみにするかは、データ量(将来の増加分も見越した)による
と思います。でもどちらのやり方にしても、普通に使えばデータベースファイルと
それを使って作業するエクセルファイルの、両方を起動しないとならなくなります。
そこでExcel.VBAで DAO や ADO というコンポーネントを操作し「データファイルを
立ち上げずに、任意のデータをワークシートに引っ張ってくる」プログラムを作れば
良いでしょう。私は ADO は良く知りませんが、DAO ならそのようなコードを提示
できますけど。

【4786】Re:データベースについて
発言  reizo  - 03/4/7(月) 16:38 -

引用なし
パスワード
   ▼sakura さん:
こんにちは
そのデータベースを開いたときに
Application.IgnoreRemoteRequests = True にしておけば
(ツール⇒オプションの全般タブの他のアプリケーションを無視するにチェックと同じ意味です。)
エクセルファイルをダブルクリックしたときに
新規のExcelが立ち上がるようになりますよ。

【4788】Re:データベースについて
お礼  sakura  - 03/4/7(月) 19:03 -

引用なし
パスワード
   みなさん、アドバイスありがとうございました。
わたしは電話交換手の仕事をしていて、随時DBで担当者を調べて交換しなければならないのでそのたびに立ち上げるのでは時間がかかってしまうのです。
データ量は大体400件ぐらいだと思います。
こうなるとやはりACCESSがいいでしょうか?
できればEXCELで作りたいので、Keinさん、もしこの返信をご覧になりましたら、DAOのコードをお教えいただけないでしょうか?
DAOのことは良くわからないのですが、ヒントでも教えていただければ勉強して覚えたいので、よろしくお願いします。
reizoさんの教えていただいたコードは、使わせていただきます。
ありがとうございます。これを使えば、問題なくEXCELでもできそうです。

【4789】Re:データベースについて
回答  Kein  - 03/4/7(月) 21:00 -

引用なし
パスワード
   400件ぐらいならExcelで充分だと思いますが、Accessに入力してしまったのなら
http://www.geocities.co.jp/SiliconValley/4805/vbtips/vbtips000.htm
↑の28〜42番のサンプルや
http://www.vbasekai.com/tipsdao.html
などを参考にされたら良いでしょう。もしExcelでデータベースを作るなら、
最低限「1行目を項目にする」というデータベース形式の入力でないと DAO を使って
うまくデータを引張ることが出来ません。いちおう開いていないExcelのデータファイル
から、データを持ってくるなら

Sub DAO_Test_ExcelData()
  Dim Sh As Worksheet, DB As Database, RS As Recordset
  Const FName As String = _
  "C:\Program Files\Microsoft Office\Office\JobFiles\Book2.xls"
  'データファイルのフルパス

  Set Sh = Worksheets("Sheet1")
  'データを表示するシート

  Set DB = OpenDatabase(FName, False, False, "Excel 8.0;HDR=NO;")
  Set RS = DB.OpenRecordset("Sheet3$")
  'データファイルのデータのあるシート名に $ を付ける

  Sh.Range("A1:E1").Value = _
  Array("Data1", "Data2", "Data3", "Data4", "Data5")
  '実際の項目をこのように配列に入れて、1行目に入力 

  Sh.Range("A2").CopyFromRecordset RS
  RS.Close: DB.Close
  Set RS = Nothing: Set DB = Nothing: Set Sh = Nothing
End Sub

などとすれば出来るでしょう。大雑把に1000行ぐらいを普通にリンクを張るのでも
良いかと思いますが。

【4790】Re:データベースについて
発言  Kein  - 03/4/7(月) 21:04 -

引用なし
パスワード
   あ、それから DAO を使うコードは、VBEの「ツール」「参照設定」で
Microsoft DAO 3.6 Object Library にチェックを入れてから、実行して下さい。

【4791】Re:データベースについて
お礼  sakura  - 03/4/7(月) 21:40 -

引用なし
パスワード
   Keinさん、親切にありがとうございました。
難しいけどがんばって覚えますね!
DAOって恥ずかしながら始めて知りました…
これからいろいろ調べながら勉強していきます。
400件程度ならEXCELでも可能ということで、やはりEXCELで作ろうと思います。
もしかしたらまたアドバイスいただくかもしれませんが、よろしくお願いします。
本当にありがとうございました。

13571 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free