- 締切済み
Accessでのテーブル作成や追加クエリなどについての質問です。
◆テーブル作成クエリで作成するテーブルにオートナンバー型のフィールドを設けたい。◆ (ナンバーが必ず1から振られることが条件) ※補足※ あらかじめオートナンバー型を含むテーブルを用意し、追加クエリ&削除クエリを使用すればよいという意見もありますが、この場合オートナンバー型のフィールドはカウントをアップし続けてしまう為断念。 ★教えてほしい事★ テーブル作成クエリからオートナンバー型のフィールドを作成できるのか? もしくは あらかじめオートナンバー型を含むテーブルを用意し削除クエリでテーブルのデータを空にしてから追加クエリでデータを入力しても必ずオートナンバー型のフィールドの先頭値は"1"から始まるようにできるか? 宜しくお願い致します。
- みんなの回答 (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以降でないとエラーが出ると思います。