◆テーブル作成クエリで作成するテーブルにオートナンバー型のフィールドを設けたい。◆
(ナンバーが必ず1から振られることが条件)
※補足※
あらかじめオートナンバー型を含むテーブルを用意し、追加クエリ&削除クエリを使用すればよいという意見もありますが、この場合オートナンバー型のフィールドはカウントをアップし続けてしまう為断念。
★教えてほしい事★
テーブル作成クエリからオートナンバー型のフィールドを作成できるのか?
もしくは
あらかじめオートナンバー型を含むテーブルを用意し削除クエリでテーブルのデータを空にしてから追加クエリでデータを入力しても必ずオートナンバー型のフィールドの先頭値は"1"から始まるようにできるか?
宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
[イミディエイト]
? CNNExecute("CREATE TABLE MyTable (ID IDENTITY(1,1))")
True
? CNNExecute("DROP TABLE MyTable")
True
? CNNExecute("CREATE TABLE MyTable (ID LONG)")
False
True
? CnnExecute("ALTER TABLE MyTable DROP COLUMN ID)")
True
? CnnExecute("ALTER TABLE MyTable ADD COLUMN ID IDENTITY(1,1)")
True
? CnnExecute("ALTER TABLE MyTable ALTER COLUMN ID Long")
True
? CnnExecute("ALTER TABLE MyTable ALTER COLUMN ID IDENTITY(1,1)")
True
オートナンバー型を生成したり削除したり追加したり長整数に変更したり戻したりしています。
以下のCNNExecute関数で色々と試されてください。
Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String)
MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & CnnErrors.Description & Chr$(13) & _
"・Err.Number=" & CnnErrors.Number & Chr$(13) & _
"・SQL State=" & CnnErrors.SQLState & Chr$(13) & _
"・SQL Text=" & strSQL, _
vbExclamation, " ADO関数エラーメッセージ"
End Sub
Public Function CnnExecute(ByVal strSQL As String) As Boolean
On Error GoTo Err_CnnExecute
Dim isOK As Boolean
Dim cnn As ADODB.Connection
isOK = True
Set cnn = CurrentProject.Connection
With cnn
.Errors.Clear
.BeginTrans
.Execute strSQL
.CommitTrans
End With
Exit_CnnExecute:
On Error Resume Next
cnn.Close
Set cnn = Nothing
CnnExecute = isOK
Exit Function
Err_CnnExecute:
isOK = False
If cnn.Errors.Count > 0 Then
ErrMessage cnn.Errors(0), strSQL
cnn.RollbackTrans
Else
MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _
vbExclamation, " 関数エラーメッセージ"
End If
Resume Exit_CnnExecute
End Function
注意: Access2000以降でないとエラーが出ると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- MySQL クエリを、PhpMyAdminで作成して実行するとき、まず、テーブルのバックアップを作成してから行う 1 2023/05/29 16:38
- Access(アクセス) Accessのスプレッドシートエクスポートで、シートが追加されてしまう 2 2022/07/16 21:45
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス:クエリの結合とリレ...
-
Access「レコードが削除されま...
-
Accessで重複していないデータ...
-
更新不可能なクエリに対して更...
-
デザインビューにてテーブルが...
-
アクセス 項目毎にデータを横...
-
アクセスのクエリとDlookupはど...
-
ACCESSでの重複レコードの削除
-
クロス集計クエリの結果をテー...
-
ACCESSで行数指定(5万行目~8...
-
アクセス クロス集計クエリ→テ...
-
accessでクエリの結果だけをリ...
-
クエリのデータをテーブルに入...
-
教えてください! アクセスのac...
-
Access テーブルを検索し関連性...
-
Accessでテキストが合体できる...
-
アクセスのクエリでSplit関数は...
-
ACCESS2000 クエリをテーブル化...
-
access インポート時、既にある...
-
アクセスで新しいレコードの追...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
デザインビューにてテーブルが...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
accessでクエリの結果だけをリ...
-
アクセス:クエリの結合とリレ...
-
教えてください! アクセスのac...
-
Access「レコードが削除されま...
-
更新不可能なクエリに対して更...
-
アクセス クロス集計クエリ→テ...
-
アクセスのクエリでSplit関数は...
-
access インポート時、既にある...
-
ACCESSで行数指定(5万行目~8...
-
テンポラリファイルのための空...
-
Access DAOのExecuteメソッドの...
-
ACCESSでの重複レコードの削除
-
Accessのクロス集計→テーブル作...
-
Access2010「クエリが複雑すぎ...
-
access テーブル作成クエリでテ...
-
ACCESS2000 クエリをテーブル化...
おすすめ情報