sql-server - 将 VBA 更新为 SQL Server
问题描述
我正在尝试检索和更新 Excel/SQL 中的行,并发现此脚本有效,但我尝试在输入“existencia”值后立即更新它,而不是在更新宏上点击运行,找到工作表更改功能但我不确定如何将它添加到这个宏中。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
Dim i As Long
Dim vDB As Variant
Dim Ws As Worksheet
con.ConnectionString = "Provider=SQLOLEDB; data source=LAPTOP\SQLEXPRESS;initial catalog=Inventario;Integrated Security=SSPI;"
con.Open
Set cmd.ActiveConnection = con
Set Ws = ActiveSheet
'The assumption is that the data on the Excel sheet is listed from a1 Cell, including fields.
vDB = Ws.Range("a1").CurrentRegion
For i = 2 To UBound(vDB, 1)
cmd.CommandText = "UPDATE Productos SET Existencia='" & vDB(i, 4) & "' WHERE id_cod=" & vDB(i, 1) & " "
cmd.Execute
Next i
con.Close
Set con = Nothing
End Sub
解决方案
我使用 Worksheet_Change 事件做了很多事情,但我从来没有使用 Worksheet_Change 来更新 SQL Server 表中的数据。如果您考虑一下,这实际上没有任何意义。您可以整天在 Excel 文件中进行各种更改。人们一直这样做。当您完全完成更新、更改或其他操作后,您可以将数据推送到数据库中的表中。您不应该间歇性地执行此操作。否则,您将不得不在数据库表中进行各种清理。您不想为自己制造这种开销。
推荐阅读
- c# - 统一,C#,网络,3D。实例化预制件(武器)不会显示在所有客户端上
- jquery - 如果表格行日期小于今天,jquery悬停显示消息
- java - 使用 JOptionPane [关闭] 查找数组中的最高和最低数字
- python - 如何使用分类变量运行聚类
- apache - Odoo 11 + Postgresql all on AWS - 无法从我的本地机器连接
- web - 做
适合 AMP 吗?如果使用怎么办
代替 ?
- python - Pyqt5:如果使用 Twisted reactor,closeEvent 不会终止应用程序
- arduino - ADXL345 传感器的抽头检测数据转换
- swift - 如何防止双击按钮
- ansible - 在 Ansible 中更改列表值