通过ADO使用SQL Update更新Excel数据
此代码的目的是更新表中筛选器的名称。该表有三列(Filtername、location、attributes)。 始终使用Excel中的以下代码获取错误(需要更多参数):通过ADO使用SQL Update更新Excel数据,sql,excel,vba,ado,Sql,Excel,Vba,Ado,此代码的目的是更新表中筛选器的名称。该表有三列(Filtername、location、attributes)。 始终使用Excel中的以下代码获取错误(需要更多参数): Sub NewFilterName() Dim FilternameOld As String Dim FilternameNew As String 'chose Filter FilternameOld = "abc" 'Inputbox for new Filtername Filtern
Sub NewFilterName()
Dim FilternameOld As String
Dim FilternameNew As String
'chose Filter
FilternameOld = "abc"
'Inputbox for new Filtername
FilternameNew = InputBox("Bitte geben Sie einen neuen Filternamen ein:", "Filternamen festlegen", FilternameOld) 'The variable is assigned the value entered in the InputBox
If FilternameNew <> "" Then 'If the value anything but "" the result is displayed
closeRS
OpenDB
strSQL = "UPDATE [Filter$] SET Filtername=" & FilternameNew & " WHERE Filtername=" & FilternameOld
Debug.Print strSQL
Set rs = cnn.Execute(strSQL)
Else
MsgBox ("Bitte geben Sie einen Filternamen ein!")
End If
closeRS
End Sub
'open database - this workbook
Public Sub OpenDB()
If cnn.State = adStateOpen Then cnn.Close
cnn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _
ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name & ";ReadOnly=False"
cnn.Open
End Sub
'close Recordset
Public Sub closeRS()
If rs.State = adStateOpen Then rs.Close
rs.CursorLocation = adUseClient
End Sub
Sub-NewFilterName()
暗淡的过滤器旧如字符串
Dim FilternameNew作为字符串
'选择过滤器
FilternameOld=“abc”
'新过滤器名称的输入框
FilternameNew=InputBox(“BITE geben Sie EIEN neuen Filternamen ein:”,“Filternamen festlegen”,FilternameOld)”变量分配给在InputBox中输入的值
如果FilternameNew为“”,则如果值为“”,则显示结果
闭合器
OpenDB
strSQL=“更新[Filter$]设置Filtername=“&FilternameNew&”WHERE Filtername=“&FilternameOld
调试.打印strSQL
设置rs=cnn.Execute(strSQL)
其他的
MsgBox(“您的过滤器在哪!”)
如果结束
闭合器
端接头
'打开数据库-此工作簿
公共子OpenDB()
如果cnn.State=adStateOpen,则cnn.Close
cnn.ConnectionString=“驱动程序={Microsoft Excel驱动程序(*.xls,*.xlsx,*.xlsm,*.xlsb)};DBQ=“&_
ActiveWorkbook.Path&Application.PathSeparator&ActiveWorkbook.Name&“ReadOnly=False”
有线电视新闻网,开门
端接头
'关闭记录集
公共分包商()
如果rs.State=adStateOpen,则rs.Close
rs.CursorLocation=adUseClient
端接头
非常感谢您提供的任何帮助,当然您也可以随意改进我的代码。请用谷歌“ADO参数化SQL示例”@TabAlleman遗憾的是,这根本没有帮助。你能具体说明你的意思吗?