• 締切済み

web上のmdbをDAOで開く

お世話になります。 サーバ上にあるmdbfileをExcelのVBAから 操作することは可能でしょうか? HPに.xlsfileのLinkをはり、DAO?で サーバ上にあるmdbを操作したので 多分エクセルはローカルで開かれるので ただ、DAOで開くのは無理かなと 考えていますが、なかなかいい考えが 思いつきません。 可能であれば、宜しくお願い致します。

みんなの回答

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.3

追記: 先のVBコードは LANもしくは VPN 接続できる場合のみ 有効です。 __________________________________________________________ Microsoft のサイトから SQL SERVER 2005 Express版 (無償版です)をダウンロードしてサーバーにインストール MDBを SQL SERVER 2005 へ インポート IIS をサーバーにインストール の方法でできそうです。 参考サイト SQL Server 2005 自習書シリーズ http://www.microsoft.com/japan/msdn/sqlserver/selfstudy/ Express Web アプリケーション開発基礎 (WORD形式) http://download.microsoft.com/download/4/e/4/4e44222b-6778-4d5c-9597-7db262f0e319/SQLExpress_WebAppDevBasics.doc 以上

sendaitaro
質問者

お礼

色々有難うございました。 現在の環境から無理なことが 理解できました。 やはりSQLSERVER2005を使うしか ないみたいです。 できれば、安価なもので作りたいシステム があったので。 エクセル→ユーザーインターフェース (ローカル起動なし) MDB→WEB上でデータ管理 上記の条件で作成したかったのですが・・ PHPなどは画面周りが弱いので エクセルシート&フォームをインターフェース に使って作りたかったのですが。

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.2

Access や VS2005 などなくても Excel からODBC接続でmdbを操作できます。 下記方法にてEXCELにデータを取り込むかVBAにてマクロをECEL に定義し、 EXCEL のユーザーフォームなどの画面でユーザーに操作させることも可能です。 そもそも、最近では リポート機能が SQL SERVER 2005 には無償でついているので そちらを使ったほうがWEBで操作するならよろしいかと思います。 SQL Server 2005 は Developer 版で 5000円前後かと Express 版にはついていません。 個人で使用するにはDeveloper 版で 十分です。 リポート機能は BI ツールとして提供されています。  MSDN ライブラリ などで SQL Server Reporting Service    を検索すればよろしいかと思います。 __________________________________________________________________________________ ■EXCEL 機能で サーバーにあるDBへ接続 Excel のメニューから データ 新しいデータベースクエリ このウイザードに従って接続先を選択すれば Excel 内に サーバーのMDBのデータが 取り込めます。 __________________________________________________________________________________ DAO以外にはADO接続ができます。 現在は ADO のほうがいいと思います。 ______________________________________________________________________________ ■ ADO接続のサンプル 接続先をサーバーの共有ディレクトリ(\\sv1\work) とします。 共有設定で書き込みができるように設定します。 mdb は(db1.mdb)     コードは以下に示します。 Sub TEST() Dim CN As New ADODB.Connection Dim Rs As New ADODB.Recordset Const UDL_Fname_cn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=\\Sv1\work\TEST_EXCEL\db1.mdb" CN.ConnectionString = UDL_Fname_cn CN.Open Rs.Open "Select * From テーブル1", CN, adOpenStatic, adLockOptimistic, adcmdText Rs.Movefirst Do Until Rs.EOF = True Debug.Print Rs!時刻 Rs.MoveNext Loop Rs.Close CN.Close End Sub ちなみに VBAの画面でツール/参照設定 にて ADOのライブラリの追加が必要です。  参考 http://members.at.infoseek.co.jp/kenchan_h/index18.html など ______________________________________________________________________________ プログラミングについては検索エンジン Google にて「Excel ADO mdb」 キーワードに「」内を指定して検索してみてください。 たくさんの事例が紹介されています。 ______________________________________________________________________________ ■ ODBC接続のサンプル (1) ODBCの定義 接続先をサーバーの共有ディレクトリ(\\sv1\work) とします。 共有設定で書き込みができるように設定します。 mdb は(db1.mdb) 管理ツール・データソース(ODBC)を開きます。 システムDSN のTABを選択、 ODBC の名称は TESTMDB ドライバー (Microsoft Access) を選択 接続先は \\sv1\workdb1.mdb     コードは以下に示します。 Sub TEST_ODBC() Dim WS As Workspace Dim CN As Connection Dim Rs As Recordset Const Fname_cn = "ODBC;DSN=TESTMDB" Set WS = createworkspace("ODBC_WS", "", "", dbuseodbc) Set CN = WS.Openconnection("", dbdriverComplate, , Fname_cn) Set Rs = CN.OpenRecordset("Select * From テーブル1") Do Until Rs.EOF = True Debug.Print Rs!時刻 Rs.MoveNext Loop Rs.Close CN.Close End Sub ちなみに VBAの画面でツール/参照設定 にて DAOのライブラリの追加が必要です。  参考 http://members.at.infoseek.co.jp/kenchan_h/index7.html など   _____________________________________________________________________________________ ______________________________________________________________________________ プログラミングについては検索エンジン Google にて「Excel DAO mdb」 キーワードに「」内を指定して検索してみてください。 たくさんの事例が紹介されています。

noname#78947
noname#78947
回答No.1

ExcelのリンクからVBAを実行するのは無理だと思いますよ?リンクを張ると単にダウンロードされるだけですから。それにホームページ上でデータベースを使用するのにAccessは使用できないかと。こういった目的に使用できるデータベースはORACLEやSQL Serverなどです。また、ネット上で動作させることが可能なVBは.NET系のソフトじゃないと開発できませんよ?ちなみにORACLEは安い製品でも10万円ぐらい、一番高い製品は数百万円します。他に必要な.NET系の開発最新ソフトVisualStudio2005は無料のExpress Editionでもネット上で使用出来る形式で開発可能ですが一部のツールが使用できないので使いにくいです。ただ、ツールが使えるバージョンは数万円しますけど。

sendaitaro
質問者

お礼

ありがとうございます。 やはりSQLSERVERかORACLE ですか、 実は先日まで仕事先で、エクセルマクロから SQLSERVERで、SQLを関数に投げるだけでOKの システムを作成していたので、MDBで 同じことをできないかと考えていたもので・・ PHPとかを使用せずに、WEB上の DBを操作させたかったので。

関連するQ&A

  • DAO、ADOについて

    お世話になります。 エクセル、アクセスでVBAを勉強しています。 色々な調べましたが、DAO、ADOが今ひとつ ピンと来ません。 どなたか分かりやすく概要だけでもシンプルに 教えて頂けませんか。 宜しくお願い致します。

  • Access 外部MDBのリンクテーブルの変更

    お世話になってます。 Access2007へ移行のため、移行用のmdbを作成し、移行する既存のmdb群のMSysObjectsを変更しようとしています。 以下のようにVBAで自分のリンクテーブルの接続パスワードは変更できたのですが、同じく他のMDBを指定してリンクテーブルを変更する事は出来るでしょうか? Dim dbs As DAO.Database Dim tdf As DAO.TableDef Set dbs = CurrentDb For Each tdf In dbs.Tabledefs   If Len(tdf.Connect > 0 Then     tdf.Connect=";PWD=" & strPWD  '←リンクテーブルの接続PWDの変更     tdf.RefreshLink   End If Next よろしくお願い致します。

  • AccessのMDBにWEBの表(TABLE)を取り込みたいのですが、、、

    ACCESSは2000でVB6で作業をしたいと思います。 ローカルにCSVやTXTなどの定型データになって くれると後はADOなりDAOなどでMDBに放り込める のですが、どのようにローカルに取り込んでいい のかわかりません。 HTMLをGetするサンプルはいくつかありましたが、 定型データでないので作業ができません。 基本的な手法を教えて頂けると助かります。

  • ODBCとDAOについて

    Accessの排他制御について質問です。 ネットワークに存在するファイルサーバー上に置かれたAccessのMDBファイルの、排他・共有制御の方法についてです。 やりたいことは、複数の端末からMDBファイルにアクセスをかけてもデータの参照・更が可能である環境です。 MDBファイルの更新等を行うのはVBからです。 いろいろ自分で調べてみたのですがDAOで接続していれば排他等の問題はなさそうなのですが上司はDAOでは一つの端末からでしか参照・更新ができないからODBC経由でやれといわれます。 この場合どういった方法が一番適していると考えられるでしょうか。。。

  • EXCELをDAOで操作したい

    VBを使用してEXCELにあるデータをDAO(Recordsetなど)を用いて操作しようと考えています。 ACCESSをDAOで操作することはできるのですがEXCELを操作することはやったことがなく今、操作方法など色々と調べているところです。 そこでEXCELをDAOで操作する方法などが掲載されているサイトなど知っている方がおられたら教えてほしいです。 自分でも探してみたのですがなかなか思うようなところがなく質問させていただきました。 どうぞよろしくお願いします。

  • EXCEL VBA から ACCESS を操作したい

    EXCEL VBA から ACCESS(mdb)を操作したいのですが、 参考になるサイトがあれば教えて頂けないでしょうか? 一定時間毎にセルA1の値をInsertして蓄えていきたいのです。 あと、DAO と ADO どちらが良いかも教えて頂けないでしょうか? よろしくお願い致します。

  • DAO3.6とACCESSの関係

    OS:WindowsXP, Windows7 開発言語:VB6、Excel VBA ACCESSがインストールされていない環境で VB6やExcel VBAでDAO3.6を使った開発は可能ですか? また、 ACCESSがインストールされていない環境に VB6やExcel VBAでDAO3.6を使ったプログラムは配布可能ですか? ご存知の方がいたら教えて下さい。宜しくお願いします。

  • アクセスがなくてもエクセルVBAでMDBファイルは生成するか?

     ただ今、エクセルVBAでCreateDatabaseやOpenDatabseの活用方法を勉強してい  ます。VBEの参照設定でDAO3.6を登録してコ-ドを走らせました。  うまくMDBファイルは生成できましたが、素朴な疑問が起こりました。  アクセスやVBのアプリケ-ションがあるから生成するのか、それともDAOさえあ  れば生成するのか、お教え下しい!!

  • Access2003VBA・MDBファイルの容量をVBAで知りたいです。

    Access2003VBAで質問です。 (1)VBA実行中(自分自身)のMDBファイルの容量を、VBAで知ることはできますか? CSVファイルを読み込む処理ですが、1.9ギガくらいで、処理をとめたいのです。 (2)VBA実行中(自分自身)のMDBファイルのディレクトリを取得する方法を教えて下さい。 (3)自分自身のMDBファイルは、最適化できませんよね。 DAOで、閉じてるMDBファイルをコピーするしかないのかな?

  • 2つのmdb間のデータのやりとり

    お世話になります。みなさまの知恵をお貸し下さい。 A.mdbのフォーム(A_Form)からB.mdbのテーブル(B_Table)のフィールド(C_fld)の値を検索したいのですが、できればVBAで処理したいのです。どなたかご教授下さる様お願い致します。ちなみにVBAのモジュールを書いて下さるとありがたいです。よろしくお願い致します。(解りにくい文章ですみません)

専門家に質問してみよう