【無料配信♪】Renta !全タテコミ作品第1話

何から質問していいかも分からないような状況なので申し訳ないのですが、
access(2000)からデータをエクセル(2003)に引っ張ってきたいのです。

今まで、oracleのデータをエクセルに取り込んで
マクロを組むという流れで業務システムを作成することはしてきたのですが、
このたび、accessからデータを取り込んで同様のことをすることになりました。
accessは殆ど触った事がなく、何やら一般的なDBMSとは異なる感じがしています。

mdbファイル(調べてみると、このファイルにデータベースもフォームもマクロも全部含まれているそうですね。びっくりしました。)をエクセルで開けばいいのかと思ったのですが、
一度試しにやってみたときは、テーブルの選択画面などが出てきたのですが、
次に再度やってみると全く無反応な状況です。
何となく排他制御が掛かってしまったようなのですが、それすらもよく分かりません。

ちなみに、作成されているmdbを開くと、accessが起動し、ログイン的なフォームが開き、
まず最初にパスワード(これもVBAで作成されているパスワードなのかもしれないのかな)を
たずねるフォームが開いてきます。
そのパスワードは分かっているので、すぐにエクセルに取り込めると思っていたのですが、
全然できません。

oracle等だとDBはDBだけで存在していると認識しているので、
なんだかaccessはとっつき難いです。

取りとめもない質問で申し訳ないのですが、
聞きたいことを集約します。
まず、mdbを立ち上げてからフォーム画面で確認されるパスワードは何なのか?
また、そのパスワードとmdbをエクセルから開いたときに尋ねられるパスワードとは何か関係があるのか?

最終的には、mdbからデータベースだけ取り込むことができればいいのですが、
どなたかアドバイスお願いします。

質問者からの補足コメント

  • すみません。
    お礼の文章中に誤字がありました。

    >質問文に記載し忘れていましたが、業者が作成したファイルについても質問です。
    ついても → ついての
    です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/10/22 11:14

このQ&Aに関連する最新のQ&A

A 回答 (5件)

私も全く同じではないけれど、パスワ-ドを聞かれたりタイムアウトになったり、少し似ている現象に遭遇しました。


お見受けした所、accessからoracle にデ-タリンクしているように感じますが、お間違いありませんか?
もし、デ-タリンクしているのでしたら、コントロールパネルで設定したODBCの設定とaccessで設定したデ-タソ-スの設定が異なるのかも知れないので、それぞれのデ-タベース名、デ-タソ-ス名、パスワ-ドなど、設定が漏れてたり間違えていないかを見直してみて下さい。
セキュリティやファイヤウォールのブロックで、最初だけ繋がり、次回から、毎回ログインを求められたり、フリーズしてデッドロックしてタスクを強制的に切断するしかなくなったりします。
私の場合、設定を見直して、全て解決し、順調に開発しています。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
いろいろと調べてaccessの操作方法がそこそこ分かってきて、質問しているmdbはVBAやファイルにパスワードがかかっていないようだったので、
マクロやフォーム・テーブルの解析を進めているところです。
おっしゃるとおり、accessからoracleにデータリンクされているところまでは突き止めました。
私のつたない内容の質問文で、そこまで把握していただけるとは驚きました。

今、欲しいデータはoracleにあるDBなのですが、ODBCの設定についてパスワードは業者に聞かないと分からないので、
oracleへのアクセスはあきらめようと思っています。

mdbファイル中に、テーブルをcsvで出力する機能は存在するので、
コピーしたmdbファイルのVBAをいじって欲しいデータ(テーブル)を取り出そうと思っています。

ちなみにですが、お手すきのときで結構ですので、下記質問にご回答いただけると幸いです。
解析した結果、最近(ここ2,3ヶ月)にDBに追加した情報はどうやらoracleで管理し、
それより以前の情報はmdbにインポートされている設計となっているようです。(私の解析ミスでしたらすみません)
業者が来てメンテナンスすることもないそうなので、あるタイミングで自動でインポートするみたいなのですが、
わざわざそんなことする必要って何が考えられるのでしょうか?
スタンドアロンで動いているDBなので、すべてaccessでやればいいのにと思ってしまいます。
以前はoracleでDB管理していたようなので、その名残なのかなとも思いますが。

お礼日時:2015/10/25 18:50

お役に立てたなら、嬉しく思います。


私もそんなにスキルが高い訳ではないし、学歴も低いし、ベンダー資格もなくて、現場で叩き上げた経験だけで、私の意見は参考程度になれば幸いなくらいです。
二、三ヶ月前のOracleのデ-タがAccessにインポートされている理由についてのお尋ねについて、私が思うことを、もうします。
私が経験したいくつかの会社で予実管理をする場合に、accessなど基幹DB とは別の媒体で分析をすることで、基幹DBに負荷を掛けず影響も与えずに新たな情報分析デ-タを生み出し将来予測に役立てていました。なので、せっかくインポートされた情報資産を活用なさると良いかと思いました。
    • good
    • 0
この回答へのお礼

返答が遅くなりすみません。
ご回答ありがとうございます。

「なるほど、そういう使い方もあるのか!」と納得した次第です。

おかげさまで、その後、解析を進め、無事oracleからのデータのインポートに成功しました。
貴重なアドバイスのおかげと感じております。
このたびは、まことにありがとうございました。

お礼日時:2015/11/02 07:37

>業者に聞けば早いとは思うのですが、


>すんなり答えてもらえるかも分からないのです。

”業者に聞けば早い”ではなく、【業者じゃないとわからない】ですよ。
↓この辺りは極論、どういうタイミングでも起こせる動きゆえ、作った本人に聞くしかないはずです。

>まず、mdbを立ち上げてからフォーム画面で
>確認されるパスワードは何なのか?
>
>また、そのパスワードとmdbをエクセルから
>開いたときに尋ねられるパスワードとは何か関係があるのか?
    • good
    • 0

Accessの一般的な質問とは違いますね…多分、誰かが作ったAccessについての質問かな?と思われるので、教えて!g○○とか〇KWaveで聞いても誰も答えられないでしょう。



とにかく提供元に確認するしかないんじゃないの?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
おっしゃるとおり業者がaccessで作成したシステムです。
重要な事項なのに、それを質問に記載しておりませんでした。

業者に聞けば早いとは思うのですが、すんなり答えてもらえるかも分からないのです。

お礼日時:2015/10/22 09:08

Accessでは inport と export で、データーをやり取り致します


まず、mdbを立ち上げてからフォーム画面で確認されるパスワードは何なのか?<<--フォームを作成して、Passwordを求めるマクロVBAを作成する
基本では テーブルとクエリーノミですフォームわありません
accessからデターをexportしてエクセルで開く マクロを作成する
この回答への補足あり
    • good
    • 1
この回答へのお礼

早々のご回答ありがとうございます。
質問文に記載し忘れていましたが、業者が作成したファイルについても質問です。

フォームやログイン画面などはVBAで実現されているのですね。
そうであれば、すんなりインポート・エクスポートできると思うのですが、
ファイルやその中身のDBにパスワードがかかっていることはないのでしょうか?

お礼日時:2015/10/22 09:14

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelのマクロでAccessのmdbを起動したい

タイトルどおりです。
Excelマクロで試してみたところ、「ExcelからはAccessを起動できません」という旨のメッセージが出てしまいました。

Aベストアンサー

ツールで、参照設定して、Microsoft Access xx.0 Object Library

Sub AccessOpen()
Dim appAcc As Access.Application
Dim myPath As String
Set appAcc = New Access.Application
myPath = "C:\"  '要設定
With appAcc
 .OpenCurrentDatabase myPath & "test1.mdb", False
 '処理
 .Quit
End With
Set appAcc = Nothing
End Sub

ただ、単独で、mdbファイルを開けるのでしたら、Excelから、MsQuery でも開けられるはずです。また、通常は、ADOで、mdb ファイルを開けますね。

Q〔VBA・マクロ〕EXCELからACCESSデータをひっぱるには?

当方のレベルはアクセス初級者(基本的な操作)、
エクセルはごく簡単なVBAをいじる中級者です。

アクセスにて顧客マスター、商品マスターを作成しています。
エクセルで納品書を作成しています。

現状では外部データの取り込みをつかって
エクセルシートに顧客データ(シート1)と商品データ(シート2)を
取り込んだ後に、納品書(シート3)でシート1、2に
VLOOKUP関数をかけて、納入先と商品情報を
伝票におとしこんでいます。

こんなまどろっこしいことをせずに、
エクセルからアクセスのテーブルへ直接データを取り込む方法は
ないものでしょうか?

どなたかよろしくお願いいたします。

Aベストアンサー

>当方のレベルはアクセス初級者(基本的な操作)、
>エクセルはごく簡単なVBAをいじる中級者です。

Accessのレポートと言う方向になっていますが、
この条件でしたら、エクセルで帳票もありだと思います。

その理由は、
・mdbからデータを引っ張るのはVBA+ADOを使えばそれほど難しくない。
 Ecxel VBA経験者なら大丈夫でしょう。

・Excelの方が表現力が豊かなので、最終的な帳票の見栄えは良い。
 もちろん、作りこめばの話ですが・・・。

・ADOに慣れることは、今後VB等の他の開発言語を使う際に役立つ。
 そういう機会が有ればの話ですが・・・。

Excel帳票のメリットは他にも
・帳票をExcel形式で保存できるので、後から簡単に加工できる。
・メールで送ったりも出来る。
 (Accessは持っていないが、Excelは持っている、という人は多い)


もちろん、Accessの勉強のためレポートを使うのもありだと思いますし、
その方が簡単かもしれません。

参考のため、Excelでの方法を書いてみます。
どちらを選択するかは、お好みで。

****Excel VBA+ADO で mdbファイルからデータを取り込む例****

まずAccessの方で、帳票用のクエリを作ります。
データの入っているテーブルと、マスターテーブル等を結合して、並び順なども指定しておきます。この辺りはデータベースの方が便利ですので、ExcelのVLOOKUP関数は使わない方向で・・・。

データベースを扱う上でSQL文(クエリ)の学習は必須です。SQL文は標準化されていますので、Access以外のデータベースでも応用が利きます。覚えておいて損はないと思います。

 SQL  SELECT  INNER JOIN

上記のキーワードを検索すれば必要な情報は見付かると思います。この辺りが、データベースを扱う際の、最初の難関でしょう。

もっと具体的な情報が必要でしたら、テーブルの構造(テーブル名、フィールド名、主キー)を補足してください。


次に、Excelの準備ですが、VBAの画面で[ツール]→[参照設定]を開き

 Microsoft ActiveX Data Objects 2.7 Libray

を選択しておきます。(バージョンは多少異なるかも。最新の物を選択)

----サンプルソース----
 Dim cnn As New ADODB.Connection
 Dim rst As New ADODB.Recordset
 
 Dim dbName As String
 Dim dbPath As String
 
 dbName = "db1.mdb" 'MDBファイル名
 dbPath = ActiveWorkbook.Path & "\" 'MDBのPath 今回は ExcelのBook と同じフォルダを指定

 ' MDB との接続を確立する。決まり文句です。
 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & dbPath & dbName & ";"

 'レコードセットを開く。今回は"Q1"というクエリを参照のため開きます。
 'この部分で、SQL文を指定することも可能です。
 rst.Open "Q1", cnn, adOpenForwardOnly, adLockReadOnly
 
 'レコードが無くなるまで繰り返します。
 Do Until rst.EOF
  
  'Recordset![フィールド名]で各フィールドのデータを参照できます。
  Debug.Print rst![ID], rst![DATA]
  
  rst.MoveNext '次のレコードに移動します。
 Loop
 
 rst.Close
 cnn.Close
 Set cnn = Nothing
 Set rst = Nothing
----------------------

これだけのコードでデータベースのデータを参照できます。
後は、ExcelのVBAの知識があれば帳票を作ることは可能でしょう。
(この部分が多少面倒かも・・・(^^;、Accessのレポートにするか悩むところです)

ADOに関しては、Webで検索すれば解説しているサイトは見付かると思いますので、詳しくはそちらで。

>当方のレベルはアクセス初級者(基本的な操作)、
>エクセルはごく簡単なVBAをいじる中級者です。

Accessのレポートと言う方向になっていますが、
この条件でしたら、エクセルで帳票もありだと思います。

その理由は、
・mdbからデータを引っ張るのはVBA+ADOを使えばそれほど難しくない。
 Ecxel VBA経験者なら大丈夫でしょう。

・Excelの方が表現力が豊かなので、最終的な帳票の見栄えは良い。
 もちろん、作りこめばの話ですが・・・。

・ADOに慣れることは、今後VB等の他の開発言語を...続きを読む


人気Q&Aランキング