Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ADO使用SQL Update更新Excel数据_Sql_Excel_Vba_Ado - Fatal编程技术网

通过ADO使用SQL Update更新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

此代码的目的是更新表中筛选器的名称。该表有三列(Filtername、location、attributes)。 始终使用Excel中的以下代码获取错误(需要更多参数):

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遗憾的是,这根本没有帮助。你能具体说明你的意思吗?