プロが教えるわが家の防犯対策術!

はじめまして、宜しくお願いします。

現在、Access2002、SQLサーバー2000を使ってタイトルのようなことを
実現したいと思っています。
現在作っているファイル名の拡張子はDBにSQLサーバーを使っているので「adp」です。

しかし、システムが完成した後で、扱うデータ量がそんなに多くないことと、SQLサーバーをDBに使うとお金もかかってしまうということが分かったため
やはり、アクセスの中だけの閉じたシステム(「mdb」のような状態)にしたいと思っています。

システム自体は完成してしまっているので、mdbファイルとして
作り直すには効率が大変悪いと思っています。

そこでシステムファイルはそのままでDBの接続先だけSQLサーバーから
アクセスDBに変えようと思っているのですが、
なかなかうまくいかず、行き詰っています。
もしかして、そのようなことは無理なのでしょうか?

もしもなにかお気づきの方が居られましたら、
ご教授宜しくお願いします。

A 回答 (2件)

>アクセスDBに変えようと思っているのですが、なかなかうまくいかず、行き詰っています。


>もしかして、そのようなことは無理なのでしょうか?

MSDEでの接続からADOかDAOにするということですか?
無理なことはないではないですが、ストアドの量で変換のボリュームが決まるような気がします。

しかし質問内容では、どこが行き詰まっているのかわかりません。
現在の接続方式
今後の接続方式
ストアドの本数
現在の大きな課題
などを記さないと、誰も答えることができないと思います。


ただこのようなDB変更はまれにあるので、あらかじめそういった想定をして、コーディングしておかないといけません。

特に
※DBへの接続/開放
※テーブルのレコードセット/開放
※EXECUTEする反映系の命令
※トランザクション開始/コミット/ロールバック
などのDBを操作するものは、関数化しておくのがよいと思います。
そうしておくとDB変更にも耐えやすいプログラムができると思います。

参考URL:http://homepage2.nifty.com/inform/vbdb/
    • good
    • 0
この回答へのお礼

返信が遅くなりましてすいません。
早速のレスありがとうございます。いつぞやもTAGOSAKU7さんに助けて
いただいた記憶が・・。いつもありがとうございます。

確かに言われるとおり説明不足でした。
ADOからDAOに変更するわけでなく、データベースとしてSQLサーバーを
使わないようにするとうだけで、アクセスDBをADOで操作するという形に
しようと思っています。(そのためadpからmdbに変更したい。)
つまり操作はADOでするのでストアド部分は変更はないです。


結局、解決しました。


今回、インポートできるのはテーブルだけだと思いこんでしまっていたので
このような問題がおきていました。
調べてもいないのに、決め付けていました。恥ずかしいです。

結局
(1)新しくmdbファイルをつくって、既存のadpファイルからテーブル、
 レポート、フォーム、モジュールをインポートする。
 (クエリだけはadpからmdbへのインポートではできないようです。)
(2)インポートしたテーブルを使って既存のadpファイルのクエリを参照しながら
 mdbファイルにもクエリをつくる。

(1)と(2)をやることでタイトルのことが実現できました。

参考URLを含めいろいろとありがとうございます。

お礼日時:2002/11/11 15:30

何がうまくいっていないのでしょうか。


テーブルであればインポートできますよ。
それ以外のオブジェクトは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]をクリックする。
何事もなければこれでインポートできます。

あとはダイアグラムやビューやストアドプロシージャを参考にして、リレーションやクエリを作成してください。
    • good
    • 0
この回答へのお礼

早速のレス、ありがとうございます。
返信がおそくなり申し訳ございません。

回答NO.1のお礼部分に書いた内容で解決いたしました。

インポートの手順を詳細に書いていただき本当にありがとうございます。

しかし、今回は説明の中にあります、「ファイルの種類」「ODBC Database()」を
選択せず、デフォルトのままでadpファイルを指定してインポートしました。
(テーブル名の先頭にado.がつくとストアドの内容の変更が発生してしまうため)

temtecomaiさんのいわれるとうりクエリにつてはビューを参考にしてつくりました。

お礼日時:2002/11/11 15:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!