Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请高手看看我的代码错在哪儿,不允许空值的问题

你好  发表于:2014-12-02 14:12:09  
复制

点击下载此附件

  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
总之,我的字段要求可以为空。

 

Top
你好 发表于:2014-12-03 11:37:05
这论坛真行,好在我已经找到解决办法了。

你好 发表于:2014-12-03 11:40:07
我找到完美的解决方案了。

总记录:2篇  页次:1/1 9 1 :