je me connecte à une table MySQL via vba excel et je suis le mettre à jour:Connexion Excel pour Mysql Mise à jour PROBLÈME
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
le problème est que le seul champ qui est mise à jour est le champ de l'instrument !!
ia ici desc de la table batchinfo mysql:
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)
chose drôle est que quand je recrée la table sans auto_increment il fonctionne très bien
j'ai vraiment besoin de quelqu'un pour répondre à cette question, je ne vous souciez pas si vous avez une intuition ou pas exactement sûr, je vais essayer une solution
S'il vous plaît, s'il vous plaît, s'il vous plaît ne garde pas poser la même question encore et encore. Il suffit de modifier votre question originale. Tandis que j'aime les questions d'Excel et de VBA, il n'y a pas une énorme population d'utilisateurs de VBA ici pour aider. Vous pouvez essayer sur d'autres forums VBA. –