北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
Tbl.Columns.Item(I).Properties.Item(4).Value = False 这一句代码有问题。
整个程序代码:
Option Explicit
Private Sub Command1_Click()
Dim Cat As ADOX.Catalog
Set Cat = New ADOX.Catalog
Dim Path$
Path$ = "D:\"
Dim sFile$
sFile$ = Path$ & "newdata.mdb"
If Len(Dir(sFile$)) <> 0 Then Kill sFile$
'在当前目录下建立名为newdata的Access数据库
Cat.Create ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sFile$ & ";")
Dim Tbl As ADOX.Table
Set Tbl = New ADOX.Table
Tbl.ParentCatalog = Cat
Tbl.Name = "测试数据库"
'增加字段
Tbl.Columns.Append "统一编号", adDouble, 50
Tbl.Columns.Append "日期", ADOX.DataTypeEnum.adInteger, 50
Tbl.Columns.Append "序号", ADOX.DataTypeEnum.adWChar, 50
Tbl.Columns.Append "语文(一月)", ADOX.DataTypeEnum.adDouble, 50
Tbl.Columns.Append "数学(一月)", ADOX.DataTypeEnum.adDouble, 50
Tbl.Columns.Append "语文(二月)", ADOX.DataTypeEnum.adDouble, 50
Tbl.Columns.Append "数学(二月)", ADOX.DataTypeEnum.adDouble, 50
Tbl.Keys.Append "PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "统一编号", "", "" '设置主键
Cat.Tables.Append Tbl
Dim I As Integer
For I = 1 To 2
Tbl.Columns.Item(I).Properties("Jet OLEDB:Allow Zero Length") = False
Tbl.Columns.Item(I).Properties.Item(4).Value = False
Next
Set Tbl = Nothing
Set Cat = Nothing
MsgBox "数据库表:已经创建成功!"
'-------------------------------------------------------------------------------------------------
Dim Cn As New ADODB.Connection
Set Cn = New ADODB.Connection
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sFile$ & ";"
Dim RS As New ADODB.Recordset
Set RS = New ADODB.Recordset
RS.Open "select * from 测试数据库", Cn, 1, 3
RS.AddNew
RS.Fields("日期") = "20130111"
RS.Fields("统一编号") = "20130111"
RS.Fields("序号") = "20130111"
RS.Update
End Sub
总之,我的字段要求可以为空。