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で、見積書のような「サブフォームつきフォームを丸々コピー」する方法・・・見つけるのに、四苦八苦。

最初、複雑でかつ読み取り専用のクエリを元にしたフォームをコピーしようとしていたために、 acCmdPasteAppendのラインで「コマンドまたはアクション”追加貼り付け”は無効です」のエラーが出て、 …

Office365にはSharePointリストという表データが保存できる機能がありAccessのリンクテーブルにできる

Office365では、AccessのWebアプリを作れる。 それで今、勉強しているのだが、Office365にはSharePointリストという表データが保存でき、それをAccessのリンクテーブル …

no image

DoCmd.GoToRecordよりもMe.SaveよりもMe.Refresh

Accessで、一旦フォーム上のレコードを保存したいとき、 Me.Save とやってもレコードが保存されない。 そこで、今までは、DoCmd.GoToRecordで無理矢理レコードを移動して保存してい …

no image

Access2013のWeb機能について(FileMakerと比較して)メモ

ここ数日、MS-Access 2013のWeb機能を勉強していたので、そのメモ。 ■フォームの書式 選択肢があまりに少ない。FMのようにデザインやテーマが用意されていない。 リスト表示のサイズが変更で …

no image

テキスト型の日付をformat関数で揃える

CSV形式のデータからAccessにインポートしたものだから、日付が2012/5/5やら2012/05/05やら、文字列扱い(日付型でない)の混在したデータの入ったテーブルがある。 これをきちんと並べ …