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

.htaccessと25番ポートブロック

初めてレンタルサーバの乗り換えにチャレンジした、昨日客先。 前日から今朝まで、新アドレスでの表示はずっと「500 Internal Server Error」。 乗り換え先レンタルサーバにサポート依頼 …

no image

AccessでNot in だと Null が抽出されないのは

以下のページに詳しく。 ACCESS クエリ 条件以外のレコードを抽出するには? – Access(アクセス) 解決済 | 教えて!goo <http://oshiete.goo.n …

no image

AccessからVBAでブラウザの入力フォームに値をセットする

ExcelWebAddin でWebフォームを自動入力 – Home and Abroad CliborのマクロをPythonの正規表現を使ってフォームに値をセットする – Home and Abro …

no image

Office2013のSELFCERT.EXEの場所

さがして、やっと見つかった。 自分のPC環境の場合は、以下だった。 C:\Program Files (x86)\Microsoft Office\Office15 参考にしたブログによっては、C:\ …

Accessで複数レコードを1レコードにまとめる(運送会社送り状作成のため

Accessに入れてある楽天の注文データをもとに、運送屋さんの送り状伝票を作ろうと思い立った。 しかし、楽天の注文データは、同一の受注番号で複数の商品に分かれている。 例えば一人の人が3点買い物をした …