アクセスでデータを収集する方法についての質問

このQ&Aのポイント
  • アクセスの勉強をするため、チャレンジしたいことがあります。教えてgooのカテゴリの中で、「マイクロソフト」カテゴリにある質問者の最多質問時間帯を調べるため、そのデータを自動的に取得する方法を知りたいです。
  • 教えてgooのカテゴリで、「マイクロソフト」を開くと、特定のURLが表示されます。過去の質問の頁は、URL中の番号が10ずつ増加していきます。データを収集するためには、適切なフォームを作成し、URLを探し出し、目的のデータを収集するプログラムを作成する必要があります。
  • 質問者は、自分の環境がアクセス2002とWin2000であることを明示しています。
回答を見る
  • ベストアンサー

アクセスでデータを収集

 アクセスの勉強をするため、チャレンジしたいことがあります。ご教示お願いします。  例として、教えてgooのカテゴリの中で、「マイクロソフト」カテゴリにある質問者の最多質問時間帯を調べるため、そのデータを自動的に取得する方法を身につけたいのです。  例えば、教えてgooのカテゴリで、「マイクロソフト」を開くと、"http://oshiete1.goo.ne.jp/oshiete.php3?c=232"とアドレスに表示されます。過去の質問の頁は、"http://oshiete1.goo.ne.jp/oshiete.php3?start=X&pt=0&c=232"と、URL中のXの部分の数値が10ずつ増加します。  無作為にデータを収集するために、テーブルに10~20260までの下二桁単位でアトランダムな数値を入れた列を作り、右列に対応するURLアドレスが記載された表を作成しました。  フォームを作成し、ウェブブラウザにより上記テーブルのURLから探させることを考えたのですが、頁を次々に開いて目的のデータを採集するやり方が分かりません。  そこで質問です。  上記表のURLを探し出して、日時データを収集するためには、どのようなフォームを設計し、プログラムを作成するとよろしいのでしょうか。  当方の環境は、アクセス2002、Win2000です。

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

  • ベストアンサー
回答No.3

1.URLを保存しているテーブルをオープンし読み込む 2.テーブルの最後までループする Do命令 ループの中で 3.今読んだレコードのURLよりIEデータを得る(Navigate) 4.目的の日付と時間を得る 5.次のレコードを読む(MoveNext) べたで書くとこんな感じです。 プログラミングの基本のところですけど まず、自分でやりたいことをこういうように 順番に書いてみて頭の中を整理すると やりたいことがすっきり見えてくるよ。 これをコードで書いてっていうのは時間的に 無理なのでご自身で調べるか、他の方に譲ります。 では、頑張ってください

zinchan
質問者

お礼

 作り方の流れをアドバイス下さりありがとうございます。  これをとっかかりに勉強してみたく思います。  本ご回答が寄せられるまで、URLが一つの場合で処理3→4について色々試していました。  エクセルだと処理を進められるのですが、アクセスでやってみても、Document.body.innerTextではデータが全部くっついたもの、Document.body.innerHTMLでは行の最初の列しか得られないので難儀しています。Document.body.allでは欲しくない情報まで取り込んでしまいました。

zinchan
質問者

補足

 できました。捕捉の場を借りて、お礼を申し上げます。  New InternetExplorerで.Navigate (rs!URL)で読み込み、キーワードをfilter関数で抽出、余計な記号等を抜き、データの形に修飾して抜き出すことができました。  .AddNew、.Updateでデータを他のテーブルレコードに挿入することができました。  Do loopよりも、参照テーブルの最終行(EOF)を探して行数を数え、For nextで最終行までの回数分を処理する方が処理が早かったので、改造しました。また、4つ平行して処理できるプロシージャを考えました。  一番悩んだのは、得られたデータ(変数)を、どのようにして効率的に次のプロシージャに渡せるかでした。  いろいろと勉強になりました。いきなり使い道が広がりそうです。  お礼のご挨拶まで

その他の回答 (2)

回答No.2

あ、ごめんなさい、同じ人だったのですね。 お名前確認しませんでした。 「URLから次々とデータを収集し」ってのは 前述のやり方をその回数分だけ、やればいいと思います。

zinchan
質問者

お礼

 できました。  New InternetExplorerで.Navigate (rs!URL)で読み込み、キーワードをfilter関数で抽出、余計な記号等を抜き、データの形に修飾して抜き出すことができました。  .AddNew、.Updateでデータを他のテーブルレコードに挿入することができました。  Do loopよりも、参照テーブルの最終行(EOF)を探して行数を数え、For nextで最終行までの回数分を処理する方が処理が早かったので、改造しました。また、4つの処理を平行して処理できるプロシージャを考えました。  一番悩んでいたのは、得られたデータ(変数)を、どのようにして効率的に次のプロシージャに渡せるかでした。Option Compare Databaseに置けばよかったのですね。  いろいろと勉強になりました。いきなり使い道が広がりそうです。  お礼のご挨拶まで

zinchan
質問者

補足

 >その回数分だけやれば・・・  次のURLをマクロに渡すやり方を伺っております。

回答No.1

別件で私が答えてるんだけど、 参考にならないでしょうか。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=707983
zinchan
質問者

補足

 たびたびお世話になっております。  前回の回答で、特定のURLからキーワードを使ってデータのある行を取り込む技についてありがとうございました。参考になりました。  今回は、前回、無知であることから質問範囲が広すぎた点、イメージが漠然としていた点を反省し、具体的な例を出すことで問い合わせ項目を理解してもらいたいことと、問い合わせ対象を限定して質問した方がいいかと考え、前回の質問を締め切っておりませんでしたが、勉強させていただきたい気持ちで、改めて質問させていただきました。  また、前回の質問が本カテゴリでは後に追いやられてしまうことから、これ以上の回答が望めないだろうと思ったことも理由です。  今回はいくつもあるURLから次々とデータを収集し、そのデータをテーブルに格納することを勉強したく思います。  つきましてはそれについて、ご教示賜ることができれば幸いです。

関連するQ&A

  • Accessのフォームによる、データ登録についての質問です。

    Accessのフォームによる、データ登録についての質問です。 フォームを作成して、データを入力して、フォームの画面を消すボタン(右上にある×)を押すと、テーブルに入力したデータが反映されるようですが、自分で作成したボタンを押すと反映するようにするには、どうしたらよいでしょうか? また、フォームの画面を消すボタンを押しても、反映されないようにするにはどうしたらよいでしょうか?

  • ACCESS フォーム ビュー表示を固定したい

    先ほどhttp://oshiete1.goo.ne.jp/qa3727297.html で質問したのですが、 クエリで作成したピボットテーブルをフォームで表示しているのですが、データシートから開くとピボットテーブルで表示されるのに、フォーム上のコマンドから開くようにすると、フォームビュー形式で表示されてしまい、毎回ピボットテーブルに表示形式を変更しなければなりません。。。 どうすればコマンドボタンからでもピボットテーブル形式でフォームを開くことができるのでしょうか。 お願い致します!!

  • アクセスでデータを集計するには

    例として、下記のデータテーブルを受け取りました。 テーブル1 ID 名前 項目 値 01 AA 住所 ○○ 01 AA 電話 ○× 01 AA 月給 ○△円(テキスト) 01 AA 手当 ○□円(テキスト) 02 BB 住所 □□ 02 BB 電話 □× 02 BB 月給 □△円(テキスト) 02 BB 手当 □○円(テキスト) 03 CC 住所 ×☆ 03 CC 電話 ×○ 03 CC 月給 ×△円(テキスト) 03 CC 手当 ×□円(テキスト)  以下続く 上記表を、下記表 テーブル2 ID 名前 住所 電話 月給    手当 01 AA ○○ ○× ○△(数値) ○□(数値) 02 BB □□ □× □△(数値) □○(数値) 03 CC ×☆ ×○ ×△(数値) ×□(数値)  以下続く のように編集された表を新たに作成したいのですが、どのようにしたらよろしいのでしょうか(質問1)。  また、テーブル2から、月給+手当が□△以上の人のIDと名前を抽出できるようにするには、どのような操作が必要なのでしょうか(質問2)。  データはテーブル1の形式で定期的に送られて来た上、データは全てテキスト形式故、テーブル2の形式に再編集したテーブルがあった方がいいと思いました。  アクセスは今まで使ったことがありません。  恐らくご回答の解説が長くなってしまうでしょうから、作り方の概要と流れだけでも構いません。もちろん詳細にご回答賜れば誠に幸いです。  以上、よろしくご回答のほど、お願い申し上げます。

  • アクセスへ接続し、テーブルのデータ使う事は可能でし

    PHPでSQLサーバーへの接続ではなく、 マイクロソフトアクセスへ接続し、テーブルのデータ使う事は可能でしょうか?

    • ベストアンサー
    • PHP
  • Access2010 大雑把な利用の流れ

    必要に迫られ、使い始めることになったAccess2010なるデータベースが、どのようなものか、今一つつかめていません。 1)目の前にデータの集まりがいろいろある。 2)まずは表にして見やすくします。 3)表に使う項目を決めましょう。そこに入れるデータ型も決めておいて。=テーブルの作成 4)表があらかた決まったら、表に値を入れるためのフォームを作りましょう。=フォームの作成 5)表にデータがたまってくると、それからいろいろな組合せを作って新しい表を作るようにしましょう。=クエリの作成 6)これまでに作ったものを組み合わせて、レポートを作りましょう。さぁ、データが利用しやすくでてきたぞ。 ってのが、流れでしょうか?リレーションシップとか、アプリケーションパーツとか、具体的な方法はともかく、このソフトの趣旨というのは、上の1)から6)ということで、いいんでしょうか?

  • Accessのフィールドに不要なアップダウンボタンが表示されるのは?

    既存のデーターベースからCSV形式でデーターをインポートし、アクセス 2003に取り込みテーブルを作成しました。そのテーブルを基に表形式のフォームを作成したところ、ほぼすべてのフィールドに小さいアップダウンボタンが表示されます。これはなぜでしょうか?削除の方法をお教え下さい。下記のようなものです。 www.ky-housing.jp/oshiete-goo/q-1.jpg

  • VBでAccessのデータを取り入れるには

    VB2005でフォームを作成し、そこにリストボックスを作りました。その、リストボックスの中にAccessにデータとして並べてあるURLをとり入れて並べたり、さらに上書き保存するときにフォームのURLをAccessに上書き保存したいのですがどのようにしたら良いのでしょうか。自作のお気に入りを集めたWEBブラウザーのようなものを作ろうとしています。どなたか詳しい方、どうぞよろしくご教授お願いいたします。

  • アクセス2000について

    アクセス2000でデータベースを作成しています。 幾つかのテーブルをリンクさせて、リンクしたテーブルからフィールドを選択してクエリを作り、そのクエリに基づいて単票形式のフォームを作成しました。 単票フォームの基になっているクエリを使って、表形式のフォームをオートフォームウィザードで作成しようとすると、「インデックスが有効範囲にありません。」というメッセージが出てきてフォームが作成できません。 どうしたらいいのでしょうか?誰か教えてください。

  • Accessにてデータの更新

    Accessにて、フォームにボタンを作成し、クリックすると フォームのテキストボックスのデータを取得し、 テーブルのデータを更新するVBAを作りたいのですが、 mySQL = "UPDATE テーブル名 SET フィールド名 = '1234'" このようにすると、フィールドが1234のデータに更新されるのですが、 これを namae =Me!テキストボックス名 mySQL = "UPDATE テーブル名 SET フィールド名 = namae" とするとうまくいきません。 正しい書き方をお願いします。

  • アクセス 毎日のエクセルデータ収集

    現在、10台のpcでエクセルデーターの入力を行っております。 入力途中経過を見ることは出来ます。 入力pcが止まっていることを確認し、LAN接続ハードディスク内の決められたファイル名のエクセルシートをコピペし管理用シートに10台分のでーたを貼り付けております。 移動作業には30分ほどかかり、その後30分かけて数値の整合性をかくにんしています。 以前は2台だったので苦にならなかったのですが10台だととても 大変です、これを打破しようと考えマイクロソフトアクセスで自動で出来ないか学習しているところです、 参考となるホームページなどご指導御願いします 毎日、エクセルシートのデーター収集

専門家に質問してみよう