代码如下:
现在,我打算建立 "ID" 列为 自动编号。Dim Pstr As String  
Pstr = "Provider=Microsoft.Jet.OLEDB.4.0;" 'Microsoft Jet OLEDB驱动程序的版本是4.0对应Access2000及其以下版本所建立的数据库
  Pstr = Pstr & "Data Source=" & Fm
  
  Cat.Create Pstr '创建数据库  Dim Tbl As New Table
  Cat.ActiveConnection = Pstr
  Tbl.Name = "BasicInfo" '"MyTable" '表的名称
  Tbl.Columns.Append "ID", adInteger '表的第零个字段
  Tbl.Columns.Append "数据时间", adDate, 7 '表的第一个字段
  Tbl.Columns.Item("数据时间").Attributes = adColNullable
  Tbl.Columns.Append "平均流速", adDouble, 5 '表的第二个字段
  Tbl.Columns.Item("平均流速").Attributes = adColNullable
  Tbl.Columns.Append "瞬时流量", adDouble, 5 '表的第三个字段
  Tbl.Columns.Item("瞬时流量").Attributes = adColNullable
  Tbl.Columns.Append "累积流量", adDouble, 5 '表的第四个字段
  Tbl.Columns.Item("累积流量").Attributes = adColNullable
  Tbl.Columns.Append "测量状态", adWChar, 20 '表的第五个字段
  Tbl.Columns.Item("测量状态").Attributes = adColNullable
  Tbl.Keys.Append "ID", adKeyUnique, "ID", "", ""   '这里设置主键,但是不能自动编号
  Cat.Tables.Append Tbl '建立数据表
    Set Tbl = Nothing
Set Cat = Nothing

解决方案 »

  1.   

        Dim cat As ADOX.Catalog
        Set cat = New ADOX.Catalog
        cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\1.mdb"    Dim Tbl As ADOX.Table
        Set Tbl = New ADOX.Table
        Tbl.Name = "BasicInfo"
        cat.Tables.Append Tbl '要先关联 cat 才能设置 AutoIncrement'    Dim col As ADOX.Column
        
        Set col = New ADOX.Column
        col.Name = "ID"
        col.Type = adInteger
        Set col.ParentCatalog = cat '要先关联 cat 才能设置 AutoIncrement'
        col.Properties("AutoIncrement") = True
        Tbl.Columns.Append col    '要设置 Attributes 属性必须先初始化 Column 对象再 Append'
        Set col = New ADOX.Column
        col.Name = "数据时间"
        col.Type = adDate
        col.DefinedSize = 7
        col.Attributes = adColNullable
        Tbl.Columns.Append col
        
        Set col = New ADOX.Column
        col.Name = "平均流速"
        col.Type = adDouble
        col.DefinedSize = 5
        col.Attributes = adColNullable
        Tbl.Columns.Append col
        
        Set col = New ADOX.Column
        col.Name = "瞬时流量"
        col.Type = adDouble
        col.DefinedSize = 5
        col.Attributes = adColNullable
        Tbl.Columns.Append col
        
        Set col = New ADOX.Column
        col.Name = "累积流量"
        col.Type = adDouble
        col.DefinedSize = 5
        col.Attributes = adColNullable
        Tbl.Columns.Append col
        
        Set col = New ADOX.Column
        col.Name = "测量状态"
        col.Type = adWChar
        col.DefinedSize = 20
        col.Attributes = adColNullable
        Tbl.Columns.Append col
        
        Tbl.Keys.Append "PK_BasicInfo", adKeyPrimary, "ID"    Set col = Nothing
        Set Tbl = Nothing
        Set cat = Nothing
      

  2.   


    RsAdoW.Fields("ID") = RsAdoW.RecordCount + 1已经做完了,没有楼上的办法我迂回了一下。
    在存数据库的时候 自己 把 id 加一。