首页 文章

Access 2013:使用VBA引用变量到对象

提问于
浏览
0

我正在尝试使用VBA进行循环,并检查不同的Access字段(名为“Areas”),如果它们是True或False .

如果三个区域为True,我的Sub应返回其名称(即“AreaA,AreaF,AreaG”) .

问题是,我收到一个错误:“ Compile error. Type Mismatch. " in the line shown below and the second " & ”突出显示 .

Set chkObject = "[Forms]![1110 Datos]![Area_" & Area(i) & "]"

这些是一些存在的对象(复选框):

[Forms]![1110 Datos]![Area_Cnc]

[Forms]![1110 Datos]![Area_Emb]

[Forms]![1110 Datos]![Area_Ens]

这是我的代码:

Sub MySub()
Dim Area() As String, Vars As String, i As Integer, chkObject As Object
Dim strAreas As String
Vars = "Cnc, Emb, Ens, Esp, Fer, For, Maq, Pin, Pon, Sie, Sol, Tel, Rou"

Area = Split(Vars, ", ")
strAreas = "" 'Set blank.

For i = 0 To UBound(Area)
    Set chkObject = "[Forms]![1110 Datos]![Area_" & Area(i) & "]" 'Reference to the Object.

    If chkObject.Value = True Then
        If strAreas = "" Then 'Check if it is the first Area: "Cnc" OR "Esp"...
            strAreas = Area(i)
        Else
            strAreas = strAreas & ", " & Area(i) 'To add commas if already exists one checked: "Cnc, Esp, Sie"
        End If
    End If

If strAreas = "" Then 'If no Areas were checked...
    Debug.Print "Ningún area estaba activa."
Else
    Debug.Print strAreas 'Else, return selected Areas
End If

Next
End Sub

有谁知道如何参考这个?

提前致谢!!

1 回答

  • 0

    这是工作代码,谢谢蒂姆:

    Sub MySub()
    Dim Area() As String, Vars As String, i As Integer, chkObject As Object
    Dim strAreas As String
    Vars = "Cnc, Emb, Ens, Esp, Fer, For, Maq, Pin, Pon, Sie, Sol, Tel, Rou"
    
    Area = Split(Vars, ", ")
    strAreas = ""
    
    For i = 0 To UBound(Area)
        Set chkObject = Forms("1110 Datos").Controls("Area_" & Area(i))
    
        If chkObject.Value = True Then
            If strAreas = "" Then
                strAreas = Area(i)
            Else
                strAreas = strAreas & ", " & Area(i)
            End If
        End If
    Next
    
    If strAreas = "" Then
        Debug.Print "Ningún area estaba activa."
    Else
        Debug.Print strAreas
    End If
    
    End Sub
    

相关问题