gpt4 book ai didi

mysql - 将 Excel 连接到 Mysql 更新问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:57 24 4
gpt4 key购买 nike

我正在通过 excel 中的 vba 连接到一个 mysql 表并且我正在更新它:

Set cn = New ADODB.Connection
cn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=localhost;" & _
"DATABASE=employees;" & _
"USER=root;" & _
"PASSWORD=M1llen;" & _
"Option=3"
'lets get the batch info
'
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "batchinfo", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table from Report 1
'Set wsSheet1 = wbBook.Worksheets(1)
' better refer by name
'Set wsSheet1 = wbBook.Worksheets.("Report 1")
Worksheets.Item("Report 1").Select
dpath = Range("B2").Text
atime = Trim(Range("B3").Text)
rtime = Trim(Range("B4").Text)
lcalib = Trim(Range("B5").Text)
aname = Trim(Range("B6").Text)
rname = Trim(Range("B7").Text)
bstate = Trim(Range("B8").Text)

instrument = GetInstrFromXML()

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

问题是唯一更新的字段是 instrument 字段!!

这里是 mysql batchinfo 表的描述:

mysql> desc batchinfo;
+--------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+----------------+
| rowid | int(11) | NO | PRI | NULL | auto_increment |
| datapath | text | YES | | NULL | |
| analysistime | text | YES | | NULL | |
| reporttime | text | YES | | NULL | |
| lastcalib | text | YES | | NULL | |
| analystname | text | YES | | NULL | |
| reportname | text | YES | | NULL | |
| batchstate | text | YES | | NULL | |
| instrument | text | YES | | NULL | |
+--------------+---------+------+-----+---------+----------------+
9 rows in set (0.00 sec)

有趣的是,当我在没有 auto_increment 的情况下重新创建表时,它工作正常

我真的需要有人来回答这个问题,我不在乎你是否有预感或不确定,我会尝试任何解决方案

最佳答案

我不熟悉 MySQL 但 TEXT 看起来像一个 blob 类型?如果是这样,我很惊讶它能正常工作,因为 ADO 需要对 BLOBS 进行特殊处理(http://dev.mysql.com/tech-resources/articles/vb-blob-handling.html)

尝试使用 VARCHAR 类型。

您也可以尝试 ADOCn.Execute "INSERT ..."

关于mysql - 将 Excel 连接到 Mysql 更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com