这是一段源码,工程中已经引用了 ADO 2.8 和 ADO Ext 2.8,用下面这段代码可以创建一个数据库文件,但是在创建表的时候,运行到下面的最后一句是发生错误,提示“类型无效”,清高手看看怎么会事。    Dim tbl As New ADOX.Table
    Dim cat As New ADOX.Catalog
    Dim connStr As String    connStr = "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=MYDB.MDB"
    cat.Create connStr    cat.ActiveConnection = connStr
    tbl.Name = "MODEL"
    tbl.Columns.Append "MODEL", adVarWChar, 9
    tbl.Columns.Append "FREQ", adDouble
    tbl.Columns.Append "DCR", adDouble
    tbl.Columns.Append "SENS", adDouble
    tbl.Columns.Append "DAMP", adDouble
    tbl.Columns.Append "DIST", adDouble
    tbl.Columns.Append "LEAK", adDouble
    tbl.Columns.Append "TEMPERATURE", adDouble
    tbl.Columns.Append "SEPA", adVarWChar, 7
    tbl.Columns.Append "TDATA", adVarWChar, 21
    cat.Tables.Append tbl  ' 运行到这一句出错:“类型无效”

解决方案 »

  1.   

    adVarWChar 不是 ADOX 的类型,将 adVarWChar 换成 adChar 就应该可以了
      

  2.   

    access2000這樣建數據閘比較難﹐如果你用sql server2000來建數據是比較容易的
      

  3.   

    测试了一下,没有问题 Dim tbl As New ADOX.Table
        Dim cat As New ADOX.Catalog
        Dim connStr As String
    '这里修改了
        connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\MYDB.MDB"
        cat.Create connStr    cat.ActiveConnection = connStr
        tbl.Name = "MODEL"
        tbl.Columns.Append "MODEL", adVarWChar, 9
        tbl.Columns.Append "FREQ", adDouble
        tbl.Columns.Append "DCR", adDouble
        tbl.Columns.Append "SENS", adDouble
        tbl.Columns.Append "DAMP", adDouble
        tbl.Columns.Append "DIST", adDouble
        tbl.Columns.Append "LEAK", adDouble
        tbl.Columns.Append "TEMPERATURE", adDouble
        tbl.Columns.Append "SEPA", adVarWChar, 7
        tbl.Columns.Append "TDATA", adVarWChar, 21
        cat.Tables.Append tbl  '
      

  4.   

    同意online(龙卷风V3.0--笑傲江湖) ,应该没什么问题吧。你再试试,不行的话把你的运行环境再报一下
      

  5.   

    都用到ADO2.8了,不知比2.6强大到哪了。呵呵
    另外你建立数据库直接用SQL语句是最省事的了。不妨尝试一下。
      

  6.   

    改Jet.OLEDB.3.51为Jet.OLEDB.4.0    Dim cat As New ADOX.Catalog
        Dim connStr As String    connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\MYDB.MDB"
        cat.ActiveConnection = connStr    tbl.Name = "MODEL"
        tbl.Columns.Append "MODEL", adVarWChar, 9
        tbl.Columns.Append "FREQ", adDouble
        tbl.Columns.Append "DCR", adDouble
        tbl.Columns.Append "SENS", adDouble
        tbl.Columns.Append "DAMP", adDouble
        tbl.Columns.Append "DIST", adDouble
        tbl.Columns.Append "LEAK", adDouble
        tbl.Columns.Append "TEMPERATURE", adDouble
        tbl.Columns.Append "SEPA", adVarWChar, 7
        tbl.Columns.Append "TDATA", adVarWChar, 21
        cat.Tables.Append tbl  '