MS Access

SqlServerにAccessでいうオートナンバー型をつける

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

テストデータを作るために、Accessで2万件ほどのデータを用意し、別途追加クエリを作って、ODBC接続したSqlServerに追加しようとしたところ、「型変換エラーがどうのこうので追加出来ない」とのメッセージが返ってきた。

こういうメッセージが返ってくるときは、キー関係のエラーだと長年の経験で分かっているので(偉そう)、ははーん、SqlServerのテーブルでキー項目がオートナンバーになっていないから、追加しようとしているレコードの連番をセットできないのだなと、ピンと来た。

SQL Server Management Studio (SSMS) を開いて、目的のテーブルを見つけ、自分のテーブルの場合、「no」がキーになっているので、それを右クリックして「変更」を選択し、「IDENTITYの指定」というところの「IDである」を「はい」にした。

これで良しと保存しようとしたところ、「変更の保存が許可されていません」とエラーメッセージが表示される。

このメッセージを回避するには、

「[ツール] メニューの [オプション] をクリックします。
[オプション] ウィンドウのナビゲーション ウィンドウで、[デザイナー] をクリックします。
[テーブルの再作成を必要とする変更を保存できないようにする] チェック ボックスをオンまたはオフにして、[OK] をクリックします。 」

と、以下のページにあったので、その通りにしたら、うまく上書き保存(?)できた。

エラー メッセージ “変更の保存が許可されていません” が、SQL Server でテーブルを保存しようとすると表示される
<http://support.microsoft.com/kb/956176/ja>

改めてAccessに戻り、再度追加クエリを実行(もちろんno以外のフィールドを使う)したら、うまくいった。
そして20万件のテストデータも無事作れた。
ああ、今回も何とか難関をクリア・・・よかった。

でも、あれだな。
このたびの引っ越しでLANをギガビットにしたら、すんごく速くなったので、あえてSqlServerにしなくても、mdbのままでもいいかな、と思っている。
マジで。

-MS Access

執筆者:

関連記事

no image

AccessやExcelで作ったハイパーリンクではChromeブラウザ上のGmailの受信トレイを検索できんかった・・・がShellならできた

Accessのフォームにつくったボタンをクリックしたら、ハイパーリンクに変数がセットされ、その変数でGmailの受信トレイを検索する・・・・といった仕組みを作りたかった。 Private Sub cm …

no image

Accessの複雑な処理のレポート帳票で1ページのみ出力されるはずが2ページ目になぜかページヘッダーが出るトラブルに見舞われ

レポートのデザインビューでいうと上から、レポートヘッダー、ページヘッダー、グループヘッダー、詳細、グループフッター、ページフッター、レポートフッター・・・というような、結構細かいレポートを作っている。 …

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

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

no image

AccessからExcelフォーマットでファイルに出力するサンプルコード

Excelから外部データの接続の際に,ユーザー定義関数を含んだクエリを指定するとエラーになったので、こんなやり方で対処。 Private Sub btnB2_Click() DoCmd.OutputT …

no image

AccessのレポートでNoDataでイベントキャンセル後もReport_Closeが実行されて困った

Accessのレポートで表示するデータがない場合は、以下のように書けばスマートにキャンセルできる。 Private Sub Report_NoData(Cancel As Integer) MsgBo …