excel vba 怎么执行update语句

excel vba 怎么执行update语句,第1张

UPDATE语句可以同时更新多个字段多条记录,如:

update 表1 set f1=-1, f2=0 where ID<11

执行的效果是将表1中ID从1到10的记录的f1字段值更新为-1,f2字段值更新为0

update 表1 set f1=-1, f2=0 where ID=11

执行的效果是将表1中ID为11的记录的f1字段值更新为-1,f2字段值更新为0

Private Sub CommandButton1_Click()

Dim mydate As String, mytable As String, sql As String, i As Integer

Dim cnn As ADODBConnection

mydata = ThisWorkbookPath & "\商品信息表mdb"

mytable = "inventory"

Set cnn = New ADODBConnection

With cnn

Provider = "microsoftjetoledb40;Persist Security Info=False;Jet OLEDB:Database Password=123"

Open mydata

End With

For i = 1 To 4

sql = "update inventory set 商品编码='" & Chr(i + 64) & "'+MID(商品编码,3) where 商品编码 like '0" & i & "%'"

cnnExecute sql

Next

MsgBox "存货编码批量替换成功!", vbInformation

cnnClose

Set cnn = Nothing

End Sub

做个样表详见截图

输入   =IF(ROW()<=COUNTA(A:A),INDEX(A:A,ROW(A1)),IF(ROW()<=COUNTA(A:B),INDEX(B:B,SMALL(IF(B:B<>"",ROW(B:B),6^6),ROW(A1)-COUNTA(A:A))),INDEX(C:C,SMALL(IF(C:C<>"",ROW(C:C),6^6),ROW(A1)-COUNTA(A:B)))))

同时按下CTRL+SHIFT+Enter三键,使数组公式出现{ },公式下拉直到出现0值

这里用公式做3列还可以,但运行比较慢,若列数再多公式更复杂,运行会更卡,建议用VBA而不用公式

Cells(TargetRow, 1) = Now()

的错误在于“ ,”

vba只识别英文状态的“ , ”

Private Sub Worksheet_Change(ByVal Target As Range)

If TargetRow >= 3 And TargetRow <= 100 And _

TargetColumn >= 2 And TargetColumn <= 10 Then

ApplicationEnableEvents = False

Cells(TargetRow, 1) = Now()

ApplicationEnableEvents = True

End If

End Sub

把上面的语句贴上去看看。

这段代码的意思是

在你所激活的单元格在 3行到100行, 2列到10列之间时

所选取当前单元格的第一列 = 当前时间 now()

希望能帮到你。

代码开始先取消保护单元格,结束执行再保护单元格。同时,注意出错处理。程序出错,同样要进行保护单元格。

Sheet1Unprotect '取消单元格保护

Sheet1Protect DrawingObjects:=True, Contents:=True, Scenarios:=True '进行单元格保护

代码中的Sheet1是工作表的后台名称

以上就是关于excel vba 怎么执行update语句全部的内容,包括:excel vba 怎么执行update语句、请教如何在vba里同时运行多个update语句更新access数据库对应表、同一个excel中一个工作簿随另一个工作簿更新等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10210390.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存