微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在带有 Access db 的 VBA Excel 查询中使用变量作为列名

如何解决无法在带有 Access db 的 VBA Excel 查询中使用变量作为列名

Dim sqlStr As String

sqlStr = "UPDATE amenities SET [Accessible Parking On Site]='" & newName & _
            "' WHERE HostelKey='" & hostel & "';"

查询更新右侧字段中的访问数据库。 我的问题是我无法让它与字段 [Accessible Parking On Site] 一起使用作为变量。 (newNamehostel 是变量,我在字段名称周围使用 [],因为表中的某些字段名称有空格)。

解决方法

类似于您已经在使用的变量...

Dim SQLStr As String,fieldName As String

fieldName = "Accessible Parking On Site"

SQLStr = "UPDATE amenities SET [" & fieldName & "]='" & newName & _
            "' WHERE HostelKey='" & hostel & "';"
,

你可以这样试试吗?

Sub ImportDataFromExcel()
    Dim rng As Range
    Dim r As Long
    Dim conn As ADODB.Connection
    Dim strConn As String
    Dim strSQL As String

    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
        "C:\your_path_here\Northwind.mdb"
    Set conn = New ADODB.Connection
    conn.Open strConn
    
    With Worksheets("Sheet1")
        lastrow = .Range("A2").End(xlDown).Row
        lastcolumn = .Range("A2").End(xlToRight).Column
        Set rng = .Range(.Cells(lastrow,1),.Cells(lastrow,lastcolumn))
    End With
        
        'therow = 1
        
        For i = 2 To lastrow
            'r = rng.Row
            'If r > 1 Then
                strSQL = "UPDATE PersonInformation SET " & _
                    "AnewNamege=" & Worksheets("Sheet1").Range("A" & i).Value & " WHERE " & _
                    "hostel=" & Worksheets("Sheet1").Range("B" & i).Value
                conn.Execute strSQL
            'End If
            'r = r + 1
        Next i
        
    
    conn.Close
    Set conn = Nothing
End Sub

另外,设置适当的引用...转到工具引用,然后选中“Microsoft ActiveX 数据对象 2.6 对象库”框。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。