使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
> VBAより新規で作成したテーブルのYes/No型フィールドに、既定値を
> 設定したいのですがどのようにすればよいのでしょうか。
実際にどのようなコードによって
テーブルを新規作成されたのでしょうか。
> この「削除フラグ」の既定値としてFalse(No?)を設定したく
例えば DAO の CreateTableDef メソッドや
CreateField メソッドを使用されているならば、
CreateField メソッドによって新規作成された
DAO.Field オブジェクトの DefaultValue プロパティに
False を設定なさればよろしいかと。
> VBAにてデータ定義クエリを実行し、以下のテーブルを作成しております。
なお、既存のフィールドの DefaultValue プロパティを
設定する場合は次のようなコードを実行します。
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Set db = CurrentDb
Set tdf = db.TableDefs("テーブル名")
Set fld = tdf.Fields("削除フラグ")
fld.DefaultValue = False
Set fld = Nothing
Set tdf = Nothing
Set db = Nothing
> ALTER TABLE
この場合はフィールド定義の変更を行なう際に
DEFAULT キーワードを用いてフィールドの既定値を指定することになりますが、
DEFAULT キーワードを含む ALTER TABLE ステートメントを実行するには
ADO を使用する必要があります。
(クエリのSQLビューやDAOからではエラーが発生します)
Dim cn As ADODB.Connection
Dim strSQL As String
Set cn = CurrentProject.Connection
strSQL = "ALTER TABLE [テーブル名] ALTER COLUMN [削除フラグ] BIT DEFAULT False"
cn.Execute strSQL
Set cn = Nothing