代码如下:
Dim db As Database
dim sql as string
ringAdodc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\tixingdb1.mdb"
ringAdodc.CommandType = adCmdText
ringAdodc.RecordSource = "select scht.*,txsz.servicecontent,txsz.ringcycle,txsz.ringfrequency  from txsz,scht where scht.serviceproductnum =txsz.serviceproductnum and scht.daoqitixing=-1 "
ringAdodc.Refresh
While Not ringAdodc.Recordset.EOF
   db.Execute "insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) value ('" & ringAdodc.Recordset("contractnum") & "', '" & ringAdodc.Recordset("serviceproductnum") & "')"    ringAdodc.Recordset.MoveNext
Wend
运行时出现insert into语句语法错误,该怎么改?有没有别的方法把recordset里的记录写入数据库的一个表(tixing)中?

解决方案 »

  1.   

    "insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) value ('" & ringAdodc.Recordset("contractnum") & "', '" & ringAdodc.Recordset("serviceproductnum") & "')"    
    你的Insert 語句根本就沒有寫正確﹐字段多于要插入的值!
      

  2.   

    贴急了,没有写完整,是:
    db.Execute "insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) value ('" & ringAdodc.Recordset("contractnum") & "', '" & ringAdodc.Recordset("serviceproductnum") & "'," & ringAdodc.Recordset("contractdate") & ",'" & ringAdodc.Recordset("daoqitixing") & "','" & ringAdodc.Recordset("servicecontent") & "','" & ringAdodc.Recordset("ringcycle") & "','" & ringAdodc.Recordset("ringfrequency") & "')"
      

  3.   

    使用如下语句试试:
    db.Execute "insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) value ('" & ringAdodc.Recordset("contractnum") & "', '" & ringAdodc.Recordset("serviceproductnum") & "','" & ringAdodc.Recordset("contractdate") & "','" & ringAdodc.Recordset("daoqitixing") & "','" & ringAdodc.Recordset("servicecontent") & "','" & ringAdodc.Recordset("ringcycle") & "','" & ringAdodc.Recordset("ringfrequency") & "')"还有可能就是tixing的字段定义了。
      

  4.   

    刚才给的语句 不行吗
    那么你可以在
    dim strsql as string
    strsql= "insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) value ('" & ringAdodc.Recordset("contractnum") & "', '" & ringAdodc.Recordset("serviceproductnum") & "','" & ringAdodc.Recordset("contractdate") & "','" & ringAdodc.Recordset("daoqitixing") & "','" & ringAdodc.Recordset("servicecontent") & "','" & ringAdodc.Recordset("ringcycle") & "','" & ringAdodc.Recordset("ringfrequency") & "')"
    debug.print strsql
    db.Execute strsql把debug出来的东东发上来.
      

  5.   

    debug:
    insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) value ('0001', 'ss1001','2004-8-3','True','dsfsdfsdfdsf','每月','一直')
      

  6.   

    我一直觉得.对于多个字段..
    value 要换成values 不知道行不行.如果楼主他们的不行,就加s看看吧!(我没有去试..^_^)
      

  7.   

    改成:
    insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) values ('0001', 'ss1001','2004-8-3','True','dsfsdfsdfdsf','每月','一直')
      

  8.   

    Values 关键字不能随便改动。
      

  9.   

    ringAdodc的值有问题?
     LGYAN(紫衣随想) 的方法试试!
      

  10.   

    或者改成如下语句,看你的字段daoqitixing应试是布尔型的
    那么SQL语句可改为
    insert into tixing(contractnum,serviceproductnum,contractdate,daoqitixing,servicecontent,ringcycle,ringfrequency) values ('0001', 'ss1001','2004-8-3',1,'dsfsdfsdfdsf','每月','一直')
    注意:本处把字符'True'换成了数字1。
      

  11.   

    问题解决了,改为values成功。
    最后谢谢各位,小弟刚学不久,日后还请多多指教。
      

  12.   

    还有daoqitixing是布尔型的,但是为ture的时候它的值是-1。