- ベストアンサー
Accessの接続先をSQLサーバーからアクセスDBにしたい
はじめまして、宜しくお願いします。 現在、Access2002、SQLサーバー2000を使ってタイトルのようなことを 実現したいと思っています。 現在作っているファイル名の拡張子はDBにSQLサーバーを使っているので「adp」です。 しかし、システムが完成した後で、扱うデータ量がそんなに多くないことと、SQLサーバーをDBに使うとお金もかかってしまうということが分かったため やはり、アクセスの中だけの閉じたシステム(「mdb」のような状態)にしたいと思っています。 システム自体は完成してしまっているので、mdbファイルとして 作り直すには効率が大変悪いと思っています。 そこでシステムファイルはそのままでDBの接続先だけSQLサーバーから アクセスDBに変えようと思っているのですが、 なかなかうまくいかず、行き詰っています。 もしかして、そのようなことは無理なのでしょうか? もしもなにかお気づきの方が居られましたら、 ご教授宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>アクセスDBに変えようと思っているのですが、なかなかうまくいかず、行き詰っています。 >もしかして、そのようなことは無理なのでしょうか? MSDEでの接続からADOかDAOにするということですか? 無理なことはないではないですが、ストアドの量で変換のボリュームが決まるような気がします。 しかし質問内容では、どこが行き詰まっているのかわかりません。 現在の接続方式 今後の接続方式 ストアドの本数 現在の大きな課題 などを記さないと、誰も答えることができないと思います。 ただこのようなDB変更はまれにあるので、あらかじめそういった想定をして、コーディングしておかないといけません。 特に ※DBへの接続/開放 ※テーブルのレコードセット/開放 ※EXECUTEする反映系の命令 ※トランザクション開始/コミット/ロールバック などのDBを操作するものは、関数化しておくのがよいと思います。 そうしておくとDB変更にも耐えやすいプログラムができると思います。
その他の回答 (1)
何がうまくいっていないのでしょうか。 テーブルであればインポートできますよ。 それ以外のオブジェクトはSQL Server Enterprise Managerを開いてSQL Server内のものを参考にしてAccessで作り直すしかないでしょうね。 【インポート方法】 Access2000を起動してMDBファイルを開く、または新規作成する。 テーブル一覧を表示させ、[右クリック]-[インポート]を実行。 ファイルを選択するダイアログが表示されるので、「ファイルの種類」で「ODBC Database()」を選択する。 「データソースの選択」ダイアログが表示されるので、「ファイル データソース」タブで[新規作成]をクリック。 「データソースの新規作成」ダイアログが表示される。 「セットアップするデータソースのドライバを選択してください」で「SQL Server」を選択して[次へ]をクリック。 [参照]ボタンをクリック。「名前を付けて保存」ダイアログが表示される。 そのまま、もしくは好きなフォルダに移動して、適当なファイル名をつけて[保存]をクリック。 再び「データソースの新規作成」ダイアログに戻ってくるので[次へ]をクリック。 [完了]をクリック。「SQL Serverに接続するための新規データソースを作成する」ダイアログが表示される。 接続するSQL Serverを指定して[次へ]をクリック。 ログインの認証方法でWindowsNT認証かSQL Server用ログインのどちらか好きなほうを選択する。 # WindowsNT認証の場合は今ログインしているユーザーがSQL Serverに接続する権限を持っている必要があります。 # SQL Server用のログインIDの場合は、SQL Serverをインストールしたときに「SA」というユーザーを作ったと思いますので、ユーザー名「SA」と、インストール時に設定したパスワード(もしかしたらパスワードなしって場合もありますが)を入力する。 [次へ]をクリックする。 「既定のデータベースを以下のものに変更する」にチェックを入れて、接続したいデータベース名を選択し、[次へ]をクリックする。 そのまま[完了]をクリックする。 一応[データソースのテスト]をクリックする。 テストが完了しない場合は先ほど指定したユーザー名とパスワードや、その他の細かな情報を確認する。 テストが完了したら[OK]をクリックする。 「データソースの選択」ダイアログに戻ってくるので、今作成したデータソースを選択して[OK]をクリックする。 「オブジェクトのインポート」ダイアログが表示されるのでインポートしたいテーブルを選択する。 # テーブル名は dbo. + テーブル名 となっています。 # システムテーブルも表示されているので、自分で作成したテーブルだけを選んでください。 テーブルを選択したら[OK]をクリックする。 何事もなければこれでインポートできます。 あとはダイアグラムやビューやストアドプロシージャを参考にして、リレーションやクエリを作成してください。
お礼
早速のレス、ありがとうございます。 返信がおそくなり申し訳ございません。 回答NO.1のお礼部分に書いた内容で解決いたしました。 インポートの手順を詳細に書いていただき本当にありがとうございます。 しかし、今回は説明の中にあります、「ファイルの種類」「ODBC Database()」を 選択せず、デフォルトのままでadpファイルを指定してインポートしました。 (テーブル名の先頭にado.がつくとストアドの内容の変更が発生してしまうため) temtecomaiさんのいわれるとうりクエリにつてはビューを参考にしてつくりました。
お礼
返信が遅くなりましてすいません。 早速のレスありがとうございます。いつぞやもTAGOSAKU7さんに助けて いただいた記憶が・・。いつもありがとうございます。 確かに言われるとおり説明不足でした。 ADOからDAOに変更するわけでなく、データベースとしてSQLサーバーを 使わないようにするとうだけで、アクセスDBをADOで操作するという形に しようと思っています。(そのためadpからmdbに変更したい。) つまり操作はADOでするのでストアド部分は変更はないです。 結局、解決しました。 今回、インポートできるのはテーブルだけだと思いこんでしまっていたので このような問題がおきていました。 調べてもいないのに、決め付けていました。恥ずかしいです。 結局 (1)新しくmdbファイルをつくって、既存のadpファイルからテーブル、 レポート、フォーム、モジュールをインポートする。 (クエリだけはadpからmdbへのインポートではできないようです。) (2)インポートしたテーブルを使って既存のadpファイルのクエリを参照しながら mdbファイルにもクエリをつくる。 (1)と(2)をやることでタイトルのことが実現できました。 参考URLを含めいろいろとありがとうございます。