MyTable.Name = TableName '设置新表名
    
    Dim i As Integer
    MyTable.Columns.Append "AuthID"     
    MyTable.Columns.Append "姓名"
    For i = 0 To FieldsCount - 1
        MyTable.Columns.Append FieldsName(i), adWChar 
    Next i
    
    MyCatalog.Tables.Append MyTable  -----------------------------------------------------------------
如何进一步设置呢?比如,设置authid为自动编号,其他字段允许为空

解决方案 »

  1.   

    建议用SQL建立表,比较容易调试,快、安全。不会那么麻烦的。
    如:
    cnn.Execute "create table user_inf(id autoincrement,user_name varchar(10) not null,user_psw varchar(255) not null,user_purview varchar(50) not null)"autoincrement 就是自动编号。默认允许为空。 not null就是不允许为空。建立一个表用ADOX那么多的步骤太得不偿失了。
      

  2.   

    非常感谢roger_xiong(风过无痕) 的回复,用SQL创建表我会,我只是不会ADOX,想用ADOX创建一个
      

  3.   

    呵呵,歹势~ Dim Bulid As New ADOX.Catalog
     Dim pstr As String  '定义该变量是为了后面的书写方便 pstr = "Provider=Microsoft.Jet.OLEDB.4.0;"   '不能把这里的4.0改为3.51
     pstr = pstr & "Data Source=" & FileName
     Bulid.Create pstr  '创建数据库
     
     Set tbl = New Table
         tbl.Name = "评议表项目"  '表的名称
         tbl.ParentCatalog = Bulid
         tbl.Columns.Append "id", adInteger
         tbl.Columns("id").Properties("AutoIncrement") = True '自动编号
         tbl.Columns.Append "项目名称", adVarWChar, 50
         Bulid.Tables.Append tbl呵呵,ADOX没有办法直接建立自动编号的字段,需要转一下:
         tbl.Columns.Append "id", adInteger
         tbl.Columns("id").Properties("AutoIncrement") = True '自动编号先建立一个adInteger的字段,然后改该字段的("AutoIncrement")属性为真就好了。
      

  4.   

    tbl.Columns("id").Properties("AutoIncrement") = True '自动编号这句好像不行啊,我查了一些资料,也是这么写的,可就是运行不了
      

  5.   

    你的问题楼上的那位帮你解决了,你再好好看看他的方法。
    主要是:
    ADOX没有办法直接建立自动编号的字段,需要转一下:
         tbl.Columns.Append "id", adInteger
         tbl.Columns("id").Properties("AutoIncrement") = True '自动编号先建立一个adInteger的字段,然后改该字段的("AutoIncrement")属性为真就好了。