• 締切済み

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