
◆テーブル作成クエリで作成するテーブルにオートナンバー型のフィールドを設けたい。◆
(ナンバーが必ず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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのクエリでSplit関数は...
-
クエリのデータをテーブルに入...
-
更新不可能なクエリに対して更...
-
accessでクエリの結果だけをリ...
-
Access「レコードが削除されま...
-
デザインビューにてテーブルが...
-
アクセス 項目毎にデータを横...
-
Accessのクエリで、抽出条件で…...
-
access インポート時、既にある...
-
Access テーブルを検索し関連性...
-
access テーブル作成クエリでテ...
-
Access2010「クエリが複雑すぎ...
-
ACCESSでテーブルの一部だけを...
-
アクセス:クエリの結合とリレ...
-
クロス集計クエリの結果をテー...
-
Access DAOのExecuteメソッドの...
-
ACCESS2000 クエリをテーブル化...
-
Access 各カラムの中に半角カ...
-
クエリについて教えてください
-
ACCESSでの別のテーブルのデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
access テーブル作成クエリでテ...
-
アクセスのクエリでSplit関数は...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
accessでクエリの結果だけをリ...
-
教えてください! アクセスのac...
-
Access「レコードが削除されま...
-
デザインビューにてテーブルが...
-
Accessのクロス集計→テーブル作...
-
アクセス:クエリの結合とリレ...
-
access インポート時、既にある...
-
更新不可能なクエリに対して更...
-
Accessのクエリで、抽出条件で…...
-
ACCESSでテーブルの一部だけを...
-
ACCESSで行数指定(5万行目~8...
-
ACCESS2000 クエリをテーブル化...
-
Access テーブルを検索し関連性...
-
アクセスのクエリとDlookupはど...
-
テンポラリファイルのための空...
おすすめ情報