ADOX フィールドのRequiredプロパティをFalseにしたい
アクセスです。
Sub test()
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim idx As ADOX.Index
Dim varRet As Variant
Dim strMsg As String
Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection
Set tbl = New ADOX.Table
tbl.Name = "test"
tbl.Columns.Append "氏名ID", adInteger '手作業で数値型のフィールドを作るとこれがデフォルトになる
tbl.Columns.Append "氏名", adVarWChar, 50
cat.Tables.Append tbl
主キーを作る
Set idx = New ADOX.Index
idx.Name = "Primary"
idx.PrimaryKey = True
idx.Columns.Append "氏名ID"
tbl.Indexes.Append idx
MsgBox tbl.Name & "テーブルを作成しました。"
Set cat = Nothing
End Sub
**********************************************************
上記のコードでテーブルを作ると、RequiredをTrueにしてないのに、
実際にテーブルにデータを入れてる時に、NULLにしようとすると、
**********************************************************
フィールドに必要なプロパティが True に設定されているため、
このフィールド '<フィールド名>' には Null 値は挿入できません。値を入力してください。
**********************************************************
となります。
Requiredプロパティの規定値は、False になってますが、
なぜか値を要求されてしまいます。
ADOXで上記のコードに追加してRequiredをFalse にする方法を教えてください。、
お礼
tbl.Columns("氏名").Attributes = adColNullable を追加したら、うまく出来ました! リンク先は英語なのですね。 それを理解できるnicotinismさんはすばらしいですね! ありがとうございました。