MS Access

初めてのSQL Server 2008 R2 Express Editionでつまづいたことの記録

投稿日:2012年12月11日 更新日:

やりたかったことは、
1.Accessのとあるテーブルを、SQL Server 2008にインポートして、複製を作る。
2.上記で作ったテーブルを、AccessからODBCで読め、かつパススルークエリを作れることの確認。

アプリのインストール

SQLEXPRWT_x86_JPN.exeとSQLServer2008SP3-KB2546951-x86-JPN.exeとSQLManagementStudio_x86_JPN.exeをインストールしたら、スタートメニューに「Microsoft SQL Server 2005」と「Microsoft SQL Server 2008」と「Microsoft SQL Server 2008 R2」の3つの項目が出来た。
失敗したかな、と思い、アンインストしてから再インストールしたが、結果は同じ。
まあいいか。

SQL Server Management StudioでAccessのテーブルをインポート

これが便利だと聞いていたので、使ってみた。
左ペインの「システム データベース」の「master」を右クリックして、「タスク」の「データのインポート」を選択し、あとはウィザードの指示通りに進めるとインポートは完了する。
(このコマンドの場所がなかなか分からなかった! しかしその他は簡単)

ODBCの設定

最初、Windowsのコントロールパネルから「データ ソース (ODBC)」を探して起動し、「SQL Server Native Cliant10.0」のドライバで登録して、そのDNSをAccessの外部データ-「ODBC接続」で呼び出したのだが、ウイザード中の「テーブルのリンク」一覧に、目的とするテーブルが出てこない。どうやったかは後述するが、色々やっているうちに、コンパネではなくAccess側から全て操作できることが分かったので、結局、途中からコントロールパネルからの登録はやめた。
注意するところは、
ウイザードで「どちらのSQLServerに接続しますか?」と聞いてきたときに、コンボボックスから選ぶことになっているが、その中のどれを選んでも接続できなかったので、SQL Server Management Studioの最初の接続の時に入っていた文字列「SAITO-HP\SQLEXPRESS」(自分の環境の場合)を入れたことと、
同じくウイザードの最後の方で「規定のデータベースを以下に変更する」のコンボボックスから、インポートの時に使ったデータベース名を選択すること(これを指定しないとシステム関係のテーブルしか出てこない)。
ともかく、苦労しつつも、ココまででAccessの画面上に地球アイコンのリンクテーブルが出現した。
(ここまでで半日かかった・・・)

パススルークエリの作成

Access側で普通にリンクテーブルを使ってクエリを作ることは、直ぐ出来た。
しかし、パススルークエリの作り方が分からない。全部を読み出す単純な選択クエリでも「ODBC–呼び出しが失敗しました」エラーが表示される。
これも正解を見つけるのに時間がかかったが、Accessで作るクエリ「SELECT * FROM dbo_master;」ではダメで、SqlServerのクエリ「SELECT * FROM master」だとOK。SQL Server Management Studioの左ペインには「dbo_master」とあるのだが、dbo_だとダメであった。
これも分かるまでに、相当の時間がかかった。
どうやって分かったかというと、SQL Server Management Studioのツールバーに「新しいクエリ」ボタンがあり、それをクリックするとクエリデザイン画面が表示され、画面上を右クリックすると「エディターでクエリをデザイン」画面が表示される。「テーブルを追加」画面にインポートしたテーブルが見えるので、それを使ってクエリを作る。それを実行すると成功して結果が表示されたので、それをコピーして、アクセスのSQL画面にペーストして実行したらOKだった。
(これも分かるのに3時間ほど・・・)

-MS Access

執筆者:

関連記事

no image

Accessでのキーワード検索(フィルタ)とブックマークの関係備忘録

Accessでのキーワード検索(フィルタ)とブックマークの関係を作るのに苦労したのでここに備忘録。 ポイントは、検索ではなくフィルタを使うことと、BookmarkではなくIDをグローバル変数に保存して …

no image

Accessでフォームフィルタの結果をExcelにエクスポートする

ちょっと、苦労した。 Private Sub cmdDMデータ作成_Click() On Error GoTo Err_cmdDMデータ作成_Click Dim rstf As String Dim …

no image

テーブル/クエリのデータシートビューでイベントを処理する方法

参考:テーブル/クエリのデータシートビューでイベントを処理する方法 | YU-TANG’s MS-Access Discovery え、そうなの? クエリを閉じた際のイベントをセットできる …

もう何度もAccessの集計クエリの作成をミスって怒られている

私が悪い。反省。 自戒のメモ。 Accessの集計クエリに条件を加えたい場合、その条件をどこに書くかによって結果が全く違ってくる。 それをわかってはいるのだが・・・最大やら演算やら、細かいことを同時に …

no image

Accessでファイル選択ダイアログを開いて選択したExcelファイルの先頭シートを読み込み番号が一致するデータの配送日を本日日付で消し込む処理

ファイル選択ダイアログを開いて、選択したExcelファイルの先頭シートを読み込み、番号が一致するデータの配送日を本日日付で消し込む処理(楽天販売DB.mdb) ダイアログを表示する際には、事前にMic …