• ベストアンサー

EXCELやACCESSでDBに接続して色々な資料を作成したい。

EXCELやACCESSに付いているVBAを使って基幹システム(DB)に接続して内容を変更したりできますか? 現在外部データーベースへの接続(EXCEL)や、 データベースのインポートやリンク(ACCESS)で接続してデータの閲覧は出来るようになったのですが、更新作業が出来ません。 それとEXCELやACCESSのVBAの勉強をしたいのですがお勧めの書籍としてはどのようなものがありますか? 自分としては「EXCEL VBA 入門」とか「ACCESS VBA 入門」とかよりも、まずはVB自体の勉強をした方がいいのかな?と思っています。 ところがVB6.0とか、VB.NETとか色々なバージョンがあるようです。 お勧めの勉強法というか、順序などありましたら教えて下さい。 宜しくお願いします。

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

  • ベストアンサー
noname#60992
noname#60992
回答No.2

データ参照ができるのであれば接続はできているようですね。 変更が許されるデータで、変更の権限があるなら更新できます。 VBAでもできます。 データベースにもよりますが、システムのデータをいじるのにはパフォーマンス、ロック属性などを考慮したうえにしたほうがよいと思います。 あと余計なお世話だと思いますが、RDBならテーブル構造などもしっかり理解しておかないと、予期せぬことが起こる可能性がありますのでご注意を。 接続方法はいろいろありますが、今はADOが主流でしょうか。  VB6はVBAとよく似ていますが、もう普通には販売されていません。   勉強法というほどのことではありませんが、ローカルのMDBなどに、データをある程度落としておいて、そこでいろいろ作業や実験などをしてみてはいかがでしょうか? 本番システムへの影響を最小限にいろいろできます。 

hikari_tai
質問者

お礼

長らくお礼をまたせてしまい申し訳ございません。 どうも権限の問題か、DB側の設定の問題があり、参照はできますが、更新や追加は出来ないらしいです。 でもリンクではなく、インポートであれば問題ないので、定期的にDBをインポートする事にしてデータの活用を行っています。 アドバイスありがとうございました。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>EXCELやACCESSに付いているVBAを使って基幹システム(DB)に接続して内容を変更したりできますか? 基幹システムに何を使っているか分かりませんが問題なく出来ます。 ADOを使って接続しレコードセットを取得したり更新をかけることができます。 ACCESSならODBCを使ってテーブルにリンクすればAccessのテーブルを使うように同様に更新など出来ます。 VBでやるなら基幹システムのDBに対してSQLを発行するようにして更新など出来ます。 >「EXCEL VBA 入門」とか「ACCESS VBA 入門」とかよりもまずはVB自体の勉強をした方がいいのかな?と思っています。 VBはどれから入っても分かりやすいと思いますけど。DBをいじるならSQLの勉強も必要です。 取りあえずAccessならVBも使えるしSQLも使えます。

hikari_tai
質問者

お礼

アドバイスありがとうございました。 とりあえずVB.net2003の勉強をはじめました。 がんばっていきたいとおもいます。

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.1

「VBA ADO」や「VBA DAO」で検索すると色々出てきます。

hikari_tai
質問者

補足

ありがとうございます。 早速検索してみます。

関連するQ&A

  • VBのプログラムでネット上のDBにアクセスする

    こんにちは。 私は勉強のためにVisualBasic2008とAccess2010を使ってローカルで動くプログラムを製作しています。 おいおいは、データベースをネットワーク上に配置してアクセスしたいのですが、 そのためにはどういう方法をとるべきなのでしょうか。 手法や参考になるHP、書籍などを教えてください。 なお、できるだけ書いているコードやソフトは流用したいと思っています。 DBについては作り直してもいいのですが、VBのプログラムは修正があまり生じないような手法をお願いします。

  • EXCEL VBAでACCESSのデータを扱いたい(初心者です)

    EXCEL VBAを勉強している者です。VBAでコードを書いてACCESSのデータを抽出してEXCELでその抽出したデートを加工したい(すべてVBAでコードを書いて処理)のですが、よくわかりません。EXCEL VBAの書籍を数冊勉強したのでEXCELの中だけでデータを作ったり、加工したりは理解できているつもりです。ただ、今まで読んだ書籍には外部データベースに接続して、その後、処理をするといったことが書いてなかったので、まったく知識がありません。そこで、ACCESSへの接続の仕方、操作の仕方などについて、やさしく(私みたいな初心者でも理解できる)説明してあるサイトまたは書籍をご存知の方、お教えください。特に、今のところ、最初の接続のところがわからないので接続について詳しく説明してあるサイトなどお願いします。

  • Excel → Access データをインポート

    OS WinXP Pro SP2 Office 2000 SP3 はじめまして。 マクロ(Excel VBA)を記述しているExcelファイル(Xls_Macro.xls)とインポート用データのExcelファイル(Xls_Data.xls)は別々のファイルになっていて、マクロを実行するとExcelファイルとインポート用データのExcelファイルのデータをAccessファイル(Access.mdb)にインポートする仕組みを開発しています。 インポート用データのExcelファイル(Xls_Data.xls)をADOで接続しレコードセットでデータを取得し、Accessファイル(Access.mdb)もADOで接続しレコードセットの「.AddNew」でAccessファイル(Access.mdb)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。

  • ExcelVBAからADOで複数のDBへの接続

    いつもお世話になっています。 ExcelVBAの初心者ですが、Oracle、Access、ExcelデータへADO接続してデータを表示するものをExcelかACCESSで作ろうとしています。 それぞれのデータは社内ネットワークのバラバラ位置にあるのですが、 ADOとは下記のイメージでいいでしょうか? 1.インポートする手間がない。 2.それぞれのDBが更新されたら、その前までのデータで表示される 3.3つのDBを同時に接続しても問題はない・・・ まだイメージが固まっていないのですが、上3つが気になっています。 また自宅でネットワーク環境になくても練習できるものでしょうか?

  • ExcelVBAでのAccessデータベースとの接続

    ExcelのVBAによるAccessデータベースの操作を勉強中(始めたばかり)です。 ソフトバンク パブリッシング出版の「Excel VBA データベース構築」で勉強しているのですが、その中で、外部データとの接続に関して以下のような例文がありました。 Sub openADOdb() Dim myADOcon As ADODB.Connection Set myADOcon = New ADODB.Connection myADOcon.Open _ "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\残高DB.mdb" myADOcon.Close Set myADOcon = Nothing End Sub これを実行すると、myADOcon.Open ”Provider~ のところで、以下のエラーが発生しました。 実行時エラー’3706’: プロバイダが見つかりません。正しくインストールされていない可能性があります。 これはExcelもしくはAccessが正しくインストールされていないということなのでしょうか。対処法としてはどのような方法がありますか。 また、本には「プロバイダ名には、どのOLE DBプロバイダを使用するかをしていします。この文字列は、OLE DBプロバイダのマニュアルやヘルプを調べると記載されています。」と出ているのですが、OLE DBプロバイダのヘルプとはどのようにしたら見れるのでしょうか。 なお、Excel97とAccess97を使っています。 以上2点よろしくお願いします。

  • Access2010のDBを2002で開きたい

    いつもお世話になります。 私、Access2010作成DBをどうしてもAccess2002で開きたいので、Webで探した以下のサイトを見様見真似でやりましたが、VBエディターを分かっていない事もあり、先へ進めなくなりました。ご存知の方、是非、アドバイスをお願いします。※変換後の不具合は承知を前提です。 ■探したサイト http://ivystar.jp/ms-office/access/how-to-convert-to-a-lower-version-of-access-2010-to-2003/ 「やってみたこと」 変換したいAccess2010のDBを開き、データベースメニューのVisual basicメニューコマンドをプッシュし、Vbエディターのペインに表示されたMicrosoft access クラスオブジェクトと標準モジュールを任意のフォルダーにエクスポートしました。 「エクスポート作業での疑問」 1、標準モジュールの変換するマクロはエクスポートできないこと。 2、マクロファイルのエクスポートの可能可否すら分からないこと。 「今後の課題と問題」 1、エクスポート以後のフォームとレポートのプロパティシートに「コード保持」の「いいえ」設定への 作業プロセス(具体的手順)が分からないこと。 2、エクスポートデータをaccessDBにする工程に自信がないこと。 以上ですが、是非、アドバイスをお願いします。

  • EXCEL2003 VBAで2つのDBに接続してSQLを実行し、異なる

    EXCEL2003 VBAで2つのDBに接続してSQLを実行し、異なるDBのTBLを結合する。 こんな方法あるのかどうかわかりませんが、 VBAでDBに接続する際に同時?に2つのDBに接続し1つのSQLで違うDB同士を任意のキーで結合はできるのでしょうか? どなたかわかる方お願いします。 今考えているのは最初に1つのDBに接続し、データを取得後、再度違うDBに接続し取得したデータを先ほどのデータとVBA内で結合しようと考えています。 ほかにいい方法があればアドバイスおねがいします。 ※今まではACCESSを介してこの処理を行っていましたが引継ぎの関係でEXCELのみでこの処理を  実行しなければなりません。

  • DBサーバの立て方

    小さいオフィスで、数人が同時に作業できるようにデータベースサーバを構想していますが、やり方がわかりません。フロントはエクセルVBAかVBと考えています。データベースは別になんでもいいですが、無料のSQLServer2008を考えています。Accessは大人数に向いていないので、考えていません。 DBサーバの立て方、もしくはサイトや本でも、ぜひご教授願います。

  • EXCELのVBAを用いたACCESSのデータベース操作の本について

    VBAの初心者です。 EXCELのシート上にあるデータをACCESSのデータベースに蓄積したり、ACCESSのデータベースからEXCELにデータを飛ばして加工したりしたいと考えています。できれば、ACCESSにVBAを記述するのではなく、EXCELにVBAを記述し、データの蓄積などをEXCELから行う方法を勉強したいのです。 自分が本屋で見た限りでは、ACCESSにVBAを記述する方法であれば様々な本が出版されているのですが、EXCELに記述する方法が書いてある本が見当たりません(たくさんあるのかも知れませんが)。皆様お勧めの分本を教えてください。 なお、自宅でEXCEL2000とACCESS2000、会社でEXCEL97とACCESS97を使っていますので、どちらでもいける本がいいです。 よろしくお願いします。

  • エクセルからアクセスDBを操作する

    エクセルVBAでアクセスのDBへ接続しそこから選択項目をエクセル側に引っ張ろうとしています。 エクセルVBAの場合、マクロの記憶で分からない操作を記録して、そのままVBAに使う事が出来ますが、アクセスにも似たような機能はありますか? 普段アクセスではクエリで検索条件を指定していますが、このクエリの検索条件をエクセルのマクロの記憶みたいな形でコードとして出す事は出来ないでしょうか? エクセルVBAでアクセスでの検索条件を組み込みたいのです。

専門家に質問してみよう