想用Ado 创建一个Access表,但运行时说"字段定义语法错误"
  代码如下:        Set NoiseDataCnn = New ADODB.Connection
        NoiseDataCnn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\noisedata.mdb;Persist Security Info=False")
        Set NoiseDataRst = New ADODB.Recordset
        Set NoiseDataCmd = New ADODB.Command
        Set NoiseDataRst.ActiveConnection = NoiseDataCnn
        Set NoiseDataCmd.ActiveConnection = NoiseDataCnn
        Dim NoiseDataCmdText As String
        NoiseDataCmdText = "CREATE TABLE xyz  ( DateTime   adSingle , NoiseData  adSingle)"
        NoiseDataCmd.CommandText = NoiseDataCmdText
        
        NoiseDataCmd.CommandType = adCmdText
        NoiseDataCmd.Execute

解决方案 »

  1.   

    没有adSingle这样的数据类型吧。你检查下,换个数据类型看看
      

  2.   

    有啊
     请看 http://dev.csdn.net/develop/article/25/25542.shtm
    我换了很多种数据类型都是这个错误 :adSingle,Single,adSmallInt,Integer,float,varchar
      

  3.   

    '给个动态建表例子:
    '工程->引用->Microsoft ADO Ext. 2.x for DLL and Security
    Sub CreateKey()
    '建立主键
    Dim adPrimary As New ADOX.Key
    Dim mCat As New ADOX.Catalog
        mCat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" & ";Persist Security Info=False"
        adPrimary.Name = "AddPriKey"
        adPrimary.Type = adKeyPrimary
        adPrimary.Columns.Append "编号"
        adPrimary.UpdateRule = adRICascade
        mCat.Tables("OneTable").Keys.Append adPrimary
    End SubSub CreateTableAndIndex()   Dim mTbl As New Table
       Dim mIdx As New ADOX.Index
       Dim mCat As New ADOX.Catalog   ' 打开目录。
       mCat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" & ";Persist Security Info=False"   ' 定义表并将其追加到目录
       mTbl.Name = "OneTable"
       mTbl.Columns.Append "编号", adInteger, 1
       mTbl.Columns.Append "帐号", adVarWChar
       mTbl.Columns.Append "名称", adVarWChar
       mTbl.Columns.Append "金额", adCurrency
       mTbl.Columns.Append "代销", adDouble
       mCat.Tables.Append mTbl
       
       ' 定义多列索引
       mIdx.Name = "MultiColIdx"
       mIdx.Columns.Append "编号"   ' 将索引追加到表上
       mTbl.Indexes.Append mIdxEnd SubPrivate Sub Command1_Click()
        Call CreateTableAndIndex
        Call CreateKey
    End Sub
      

  4.   

    楼主:
    我将你的sql语句改成这样应该可以了CREATE TABLE xyz  ( aaDateTime   text(50) , NoiseData  single)我在access用此语句建表成功。
      

  5.   

    换成
    NoiseDataCmdText = "CREATE TABLE xyz  ( DateTime   single, NoiseData  single)"
      

  6.   

    呵呵,忘记楼主的第一个字段是数值型了,DateTime是保留字,最好换个名字CREATE TABLE xyz ( aaDateTime  single) , NoiseData  single)
      

  7.   

    CREATE TABLE xyz ( myDateTime  DATETIME, NoiseData  SINGLE)