【问题标题】:Update record ADODB Excel更新记录 ADODB Excel
【发布时间】:2016-06-29 12:44:13
【问题描述】:

我需要使用 ADODB 更新 .mdb 中的单个记录,但我可以读取但无法更新...

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim cmd As ADODB.Command
Dim OknoPodmiany
Dim i, j As Integer
Dim sciezka As String
sciezka = "c:\baza_danych.mdb"
Set cnn = New Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0"
cnn.Open sciezka
Set rst = New ADODB.Recordset
Set rst.ActiveConnection = cnn
rst.Source = "SELECT * FROM TBKlienci ORDER BY Nazwaklienta"
rst.Open , , adOpenKeyset, adLockOptimistic
i = 1
While Not rst.EOF
For j = 1 To rst.Fields.Count
  'ActiveSheet.Cells(1 + i, j) = rst.Fields(j - 1)   
    If Not ActiveSheet.Cells(1 + i, j) = rst.Fields(j - 1) Then
    Select Case MsgBox("Czy chesz zmienić:" & Chr(10) & rst.Fields(j - 1) & Chr(10) & "na:" & Chr(10) & ActiveSheet.Cells(1 + i, j), vbYesNoCancel)
        Case vbYes
           MsgBox "podmieniam"
           rst!Update.Fields(j - 1) = ActiveSheet.Cells(1 + i, j)
        Case vbNo
           MsgBox "niepodmieniam"
           ActiveSheet.Cells(1 + i, j) = rst.Fields(j - 1)
        Case vbCancel
            MsgBox "anulowano"
    End Select
    End If
Next j
rst.MoveNext
i = i + 1
Wend

问题是rst!Update.Fields(j - 1) = ActiveSheet.Cells(1 + i, j)我怎么才能通过呢?

【问题讨论】:

    标签: vba ms-access ado excel-2003


    【解决方案1】:

    您需要在记录集上调用 Update 方法才能使更改生效。

    rst.Fields(j - 1) = ActiveSheet.Cells(1 + i, j)
    rst.Update
    rst.MoveNext
    

    【讨论】:

      猜你喜欢
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 2014-06-18
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      相关资源
      最近更新 更多