宜しくお願いします。
前回、SQLのインストールがわからず質問した者です。
インストールが完了し次のステップに入りました。
仕様環境:WinXP/Pro SP3 OSは32bit版
CPU: AMD Athlon64 processor 2.00GHz 1.43GB RAM
CPUは32bit・64bitともに対応
ローカルディスクは残り122G有り
access2002 SQLサーバ2008
まず、accessをSQLサーバ-2008に移行しようと思い、
いろいろ調べた結果、accessにアップサイジングウィザードというものがあり、
そこから移行できるようなので、試しましたがエラーが発生しました。
以下がその内容です。
”アップサイジングウィザードはマイクロソフトSQLサーバー(バージョン6.50SP5以上)で使用できます。
SQLサーバーデータソースにログインしてください)”
SQLサーバーにログインすることだな、と思い、いろいろ項目をさがしたところ、
「SQLサーバーマネージメントスタジオ」というツールがあったので、そこでログインをしました。
(この辺はわけもわからずやりました)
しかしその後、状況変わらず、アップサイジングはできませんでした。
そして次に試みたのは「SQLサーバーにデータのインポート及び、エクスポート(32bit)」という
項目があったのでそこから入りました。
データソースはaccessを選択し、ファイル名は該当するaccessのファイル名(仮に作成書として)
ユーザー名とパスワードは特に設定せず進みました。
そして次の変換先が問題です。
間違えだ思いますがわからなかったので、ここでも変換先をaccessに選択し、
ファイル名も同じく該当するaccessファイルユーザー名とパスワードは設定せず、先に進みました。
次にテーブルのコピーまたはクエリの指定という項目になりましたので、
1つ以上のテーブルまたはビューからデータをコピーするを選択し、次へ進み、
どれを変換するか実行したところ、実行の準備までは成功しましたが、
実際のコピーはエラーが出て停止しできませんでした。
またその変換されるファイルもテーブル全部とクエリの一部でした。
レポートにつながっている普通の選択クエリも変換の際に名前が出てきませんでした。
マクロやフォームは出てきませんでした。
そもそも変換先が間違っていると思うので、(同じところから同じところ)
仕方ありませんが変換先がたくさん項目があってをどこに指定していいかわかりません。
ちなみに何をしたいかというと、
・デーベース容量のアップ
・複数人で使っても「排他的に~」と出ず、スムーズな運用
・処理速度アップ(これは元ファイルが1Mぐらいなので今のところ不便は感じないのですが)
もしよければご指導・アドバイス等お願いします。
ちなみに一台のPCですべてやってます。
あと参考書も買わないといけなさそうです。
(何度も聞いてると気がひけますね)
No.1ベストアンサー
- 回答日時:
まず、今回のケースでは、アップサイジングウィザードの利用はできません。
以下のリンクを参照してください。
http://support.microsoft.com/kb/967913/ja
Access2003/2007ですら対応していないのですからね。
もともとウィザードの精度はあまり良いものとはいえず、エラーメッセージが出ても対処がわかりにくいことが多いです。
したがって、手間はかかりますが、以下の手順で実行することをお勧めします。
すくなくとも自分が何をやっているか、理解しながら進めることができると思います。
1) SSMS(SQL Server Management Studio)でデータベースを作成する
・データベースタブで右クリックして「新しいデータベースを作成」を選び、データベース名だけ入力してあとは初期値で可
2) SSMSのデータのインポートを使って、MDBファイルのテーブルを移行する
・作成したデータベースを右クリックして「タスク-データのインポート」
・データソースは、元となるMDBファイル(ユーザ名、パスワードはAccess側に掛けていなければ不要)
・変換先は上記で作成したデータベースがデフォルトで選択されているはずです
・「1つ以上のテーブルまたはビューからデータをコピーする」
・「コピー元のテーブルおよびビューを選択」ですべてのテーブルを選択(ビュー、クエリは選択しない)
・実行すると、MDB側のテーブルレイアウトに合わせてテーブルが自動生成され、データがコピーされます
3) SSMSでデータベースの下に作成されたテーブルをそれぞれ右クリックして「デザイン」を選択
・ここが手間といえば手間ですが、正しいデータ型でコピーされていることを確認しつつ修正します
・SSMSの「ツール-オプション」の「Designers」で「テーブルの再作成を必要とする変更を保存できないようにする」の
チェックがオフになっていることを確認
・それぞれのテーブルにつき、以下を修正
a)主キーを設定
・テキスト型からコピーされて、データ型がnvarchar(MAX)になっている場合は適当な長さ(nvarchar(50)など)に変更する
・NULLを許容のチェックはオフ
・列を選択して右クリックすると「主キーの設定」が選べる
b)リレーションシップの設定
・デザイン画面を右クリックすると「リレーションシップ」が選べるので、「追加」
・「テーブルを列の指定」をクリックすると「...」ボタンが出るので、それを押して主キーテーブルを指定
4) PCにODBC接続のためのDSNを作成
・メニュー-コントロールパネル-管理ツール-データソース(ODBC)
・データソースドライバは「SQL Server Native Client」を設定
・名前は任意(SQLSVなど)、サーバはlocalhostなど。
・ログイン情報はSQL Serverにログインするときの情報を指定(Windows認証ならば省略可)
・既定のデータベースは新しく作成したデータベースを指定
5) Access側にあるテーブルをすべて削除して、代わりにSQL Serverにコピーしたすべてのテーブルをリンクテーブルとして登録する
・リンクテーブルのやり方はわかるという前提です(作成したDSNを使用)
わからなければ以下のリンクも参照
http://homepage2.nifty.com/SALTY/tips/access/odb …
・テーブル名はすべて従来のテーブル名と同じになるように
上記までで、テーブルがすべてSQL Serverに移り、それを参照してAccessが動く状態になります。
クエリがAccess側にあっても、「やりたいこと」はすべて満たされるはずです。
(SQL Server内にあるテーブルをAccess側でクエリとして呼ぶことになるため)
クエリはSQL Serverではビューと呼びますが、移行するには、
・SQLビューで表示されるSELECT文をSQL Serverに持っていく
CREATE VIEW (ビュー名) AS SELECT ....という形式で実行して、ビューを作成する
・ビューに対するリンクテーブルを追加する
の手順を踏む必要がありますが、ここはもう少し理解できてからの方がいいと思います。
>あと参考書も買わないといけなさそうです
もう少しSQL Serverのことは理解した方がいいかもしれませんね。
買うのもいいですが、参考になるものはネット上に大量にありますよ。
まずは、以下のあたりを見てみるといいと思います。
SQL Server 2008自習書シリーズ
http://www.microsoft.com/japan/sqlserver/2008/se …
SQL Server 2005自習書シリーズ
(質問者さんの目的であれば2005も2008も変わりません。ドキュメントはこちらの方が豊富です)
http://technet.microsoft.com/ja-jp/sqlserver/cc7 …
この回答への補足
回答有難うございます!
丁寧な回答で気軽に取り掛かれそうな気がします。
ただ、サーバーの知識がないと気が遠くなりそうですね(苦笑)。
そう、クエリをサーバーに移行するのも気になっていたんですよ。
テーブルだけ移動するのは簡単、みたいなことはどこかに書いて
あったのですが(といってもそれさえもわからないのですが)。
それはおいおいですね。
最終的に全てSQLサーバー内で運用や開発が出来て、
インターフェースはaccessで、というの目標としています。
(そうなると今までマクロとか気軽に作っていたが、それも違うのか?
でもaccessで作って、SQLに移行すればなんとかなるのかな)
今日・明日ではとてもとてもできる問題ではないので、
勉強と併用しながら徐々に理解していこうと思います。
ちなみにこの質問の締め切りは当分、後にさせて頂きますので
ご了承ください。
(有益な回答だとはわかるのですが、なにぶんまだ試せてもないので・・)
でもとても丁寧に順々に説明して下さったのが、
伝わり有り難く感じています。
有難うございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Access(アクセス) Access VBAで条件を追加する(書き込む)場所 2 2022/03/23 12:05
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのODBCリンクでSQLServer...
-
NOTESのDBをAccess2000とリンク...
-
Accessリンクの仕方によるフロ...
-
SQL Serverのリンクサーバーの
-
「マスタ」と「テーブル」の違...
-
数百万件レコードのdelete
-
ACCESS2007 フォーム 「バリア...
-
Access VBA [リモートサーバー...
-
[ BETWEEN ] vs [ >= AND <= ]
-
3つ以上のテーブルをUNIONする...
-
2つのテーブルから条件に一致...
-
SELECT時の行ロックの必要性に...
-
ACCESS 一つのフィールドに複...
-
クエリのキャンセルがいつにな...
-
ビューで引数を使いたい
-
accessテーブル作成クエリを実...
-
データの二重表示の原因
-
重複するキーから一番古い年月...
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ネットワーク上のFireBirdへODB...
-
Accessリンクの仕方によるフロ...
-
SQL Serverのリンクサーバーの
-
ACCESSのODBCリンクでSQLServer...
-
ASPからSQLサーバーへ接...
-
他のDBのテーブルと内部結合...
-
accessからSQLサーバへの移行。
-
AccessとDB2のテーブルリンクで…
-
複数のテーブルを一括でインポ...
-
SQLクエリでデータベースが壊れ...
-
「マスタ」と「テーブル」の違...
-
オラクルではできるのにSQLSERV...
-
SELECT時の行ロックの必要性に...
-
2つのテーブルから条件に一致...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessにインポートしたら並び...
-
3つ以上のテーブルをUNIONする...
-
データの二重表示の原因
-
ACCESS 一番最新の日付の金額...
-
SELECT文でのデッドロックに対...
おすすめ情報