为什么ADODB在更新时插入NULL值?

我有:

With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datapath") = dpath .Fields("analysistime") = "atime" .Fields("reporttime") = "rtime" .Fields("lastcalib") = "lcalib" .Fields("analystname") = "aname" .Fields("reportname") = "rname" .Fields("batchstate") = "bstate" .Fields("instrument") = "NA" .Update ' stores the new record End With 

当我检查数据库,它看起来像它只能插入最后一个字段!

有没有人遇到过这个问题?

编辑:下面的代码工作,但corret解决scheme可以在这里find: 连接Excel到Mysql更新问题

这涉及到使用文本数据types的困难。


这似乎工作,但不要问我为什么:

 dpath = "a" ''Trim(Range("B2").Text) atime = "a" ''Trim(Range("B3").Text) rtime = "a" ''Trim(Range("B4").Text) lcalib = "a" ''Trim(Range("B5").Text) aname = "a" ''Trim(Range("B6").Text) rname = "a" ''Trim(Range("B7").Text) bstate = "a" ''Trim(Range("B8").Text) cn.Open strCon cmd.ActiveConnection = cn cmd.CommandText = _ "INSERT INTO `batchinfo` (`datapath`, `analysistime`," _ & "`reporttime`,`lastcalib`,`analystname`,`reportname`," _ & "`batchstate`,`instrument`) " _ & "VALUES (?,?,?,?,?,?,?,?);" cmd.Parameters.Append _ cmd.CreateParameter("datapath", adChar, adParamInput, 100) cmd.Parameters.Append _ cmd.CreateParameter("analysistime", adChar, adParamInput, 100) cmd.Parameters.Append _ cmd.CreateParameter("reporttime", adChar, adParamInput, 100) cmd.Parameters.Append _ cmd.CreateParameter("lastcalib", adChar, adParamInput, 100) cmd.Parameters.Append _ cmd.CreateParameter("analystname", adChar, adParamInput, 100) cmd.Parameters.Append _ cmd.CreateParameter("reportname", adChar, adParamInput, 100) cmd.Parameters.Append _ cmd.CreateParameter("batchstate", adChar, adParamInput, 100) cmd.Parameters.Append _ cmd.CreateParameter("instrument", adChar, adParamInput, 100) cmd.Parameters("datapath").Value = "abc" cmd.Parameters("analysistime").Value = atime cmd.Parameters("reporttime").Value = rtime cmd.Parameters("lastcalib").Value = lcalib cmd.Parameters("analystname").Value = aname cmd.Parameters("reportname").Value = rname cmd.Parameters("batchstate").Value = "bstate" cmd.Parameters("instrument").Value = "NA" cmd.Execute