- 締切済み
Access2002でSQLSERVERに接続
Access2002でSQLSERVERに接続してデータを参照しクエリを実行して個別集計したいのですが、こっそり接続したいので方法を教えてください。 目的:Accessを開いたら、設定したSQLSERVERのテーブルがクエリ実行されて希望の集計結果が表示されるようにしたい(権限は参照)。テーブル設定情報はクライアントに見せない(セキュリティの為) 近所の書店ではあまり参考になる本がなかったので検索した情報をもとに下記方法で接続してみることにしました。 (1)標準モジュールを設定 Sub DB接続() dim adocon as New ADODB.Connection adocon.Open "Deiver={SQL Server}; server=サーバー名; database=DB名; uid=ID; pwd=パス;" cn.Open end sub (2)マクロにてAutoExecを作成 プロシージャーの実行でAutoExecを設定し、モジュールにはAutoEXEC()にて Call DB接続を設定しました。 しかしこれではうまく接続できたのかどうかも動作確認できません。また(2)の処理後に select * from テーブル名 のクエリを実行するように設定しても、テーブルがないと メッセージが表示されるので、うまく動作できてないようです。 クエリにて 「select * from [odbc;Driver={SQL Server}; Server=サーバー名; uid=ID;database=DB名;].テーブル名;」では接続してSQLSERVERのテーブル情報が見れます。なので名前などの間違いではないようです。(Accessの知識不足ですが、一つしかテーブルが参照できなく、複数のテーブルから色々条件を設定してデータ抽出ができないので使えないと判断しました) モジュールやマクロを利用してSQLSERVERからデータを参照するコマンド・方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tamu1129
- ベストアンサー率58% (1294/2222)
http://www.atmarkit.co.jp/fwin2k/win2ktips/404accessmsde/accessmsde.html とか参考にしてください Access MSDE とキーにしてWeb検索かけてもたくさんヒットするでしょう ODBCドライバで他のデータベースに接続させ、Accessをフロントエンドとして利用する方法なども上記に関連するページから見れますがSQLServerが相手ならばadpファイルでやった方が簡単に思えます http://www.atmarkit.co.jp/fwin2k/win2ktips/404accessmsde/accessmsde.html adpならば参照するテーブルとなる部分を非表示にも出来たはずなので、オペレート操作するだけの人に余計な操作されずにすんだりしますからお勧めですよ 使うオペレータは起動の際にAccessに似たアイコンをダブルクリックする 起動した画面はAccessその物なので操作にまったく違和感は無い だけど、接続しているデータベースエンジンはSQLServerになっているって感じです Accessのフォームとかレポートも使用出来るので、作る方はクエリーの代わりにストアドプロシージャを使ってデータベース操作させるように作らないといけませんが、それほど難しい物ではありません MSDEに関する書籍はたくさんあると思います MSDEはSQLServerのデータエンジンを容量など制限した機能制限されたSQLServerなので、そのままSQLServerにアタッチさせているのと同じ事になりますから、juujuu2929 さんが行おうとしている事を問題なく出来ますよ pin's Laboratory なんかは、実際にデータベース構築している時に迷ったら利用されると良いサイトです 丸投げはダメですが、ストアドプロシージャをこう作成したが、思った通りの動作にならないなど、やってみたんだけれどこうならないのような質問出せば、有識者がきちんと対応してくれます http://www7.big.or.jp/~pinball/
- PXU10652
- ベストアンサー率38% (777/1993)
「モジュールやマクロを利用してSQLSERVERからデータを参照するコマンド・方法を教えてください。」 ODBCで対象のSQL Serverに接続できるようにして、必要なテーブルをODBC経由で「外部データの取込」→「テーブルのリンク」としておけば、そのMDBでいつでもSQL Serverに接続出来ます。 あとは、AUTOEXECマクロで、クエリーを実行するように設定するだけで実現できます。
- tamu1129
- ベストアンサー率58% (1294/2222)
モジュールやマクロなんか使わなくてもAccess プロジェクトファイル (.adp)で操作したら良いでしょ 見た目そのままAccessになるんだし
お礼
ありがとうございました。adpについて参考になるURLがあればご紹介いただけないでしょうか。検索してみてもイマイチ理解できなくて・・・。 素人でも理解できるような親切丁寧なサイトってないでしょうか。書店ではadpの事はまったく考えてなかったので、項目を確認しておけばよかったです。
お礼
参照用&バックアップ用のサーバーの設定を個々のPCでしないといけなくなるので、避けたい方法です。クライアントはどのPCからでも操作できるようにしたいのですが、全PCを設定するとなると労力が・・・。なのでAccessを開いて使用する際、最初から設定したテーブルだけデータ参照できるようにしてあげたいなぁと思いました。