尝试在Access中打开窗体时出现错误消息

时间:2011-05-11 21:30:46

标签: ms-access vba

当我尝试在Access中打开表单时,我收到一条错误消息,提示您输入了控件名称“col1”,该消息已在使用中。发生此错误的代码位于     表格(frm)(i + 16).Name =“col”&格式(i,“0”)如下。这个错误是什么意思?我怎么能纠正它?

Sub SetGridColumns(frm As String, FirstDay As Variant, LastDay As Variant)
Dim i As Integer
' Sets column headings for all shown dates in crosstab fsub
DoCmd.OpenForm frm, acDesign, , , , acHidden
For i = 0 To 7
    ' Avoid control name conflicts by renaming them to col1 ...
    ' The dirty constant 16 is the item number of the last non-column item.
    **Forms(frm)(i + 16).Name = "col" & Format(i, "0")**
Next i
For i = 0 To 7
    ' Now give the columns the right control name and control source
    Forms(frm)(i + 16).ControlSource = Format(FirstDay + i, "mm-dd")
    Forms(frm)(i + 16).Name = Format(FirstDay + i, "mm-dd")
Next i
DoCmd.Close acForm, frm, acSaveYes
End Sub

2 个答案:

答案 0 :(得分:0)

这意味着它所说的。要在第一个循环之前找到已命名为“col1”的控件,请输出以调试表单控件的所有名称。

答案 1 :(得分:0)

如果您遇到错误,那么可能会有一些名称为col1等的挥之不去的控件,虽然从逻辑上讲,它们的名称应该是FirstDay + i +“mm-dd”。因此,正如Joel建议的那样,您可以手动检查并更正这些控件,或者您可以在重命名之前进行检查:

If Forms(frm)(i + 16).Name <> "col" & Format(i, "0") Then
   Forms(frm)(i + 16).Name = "col" & Format(i, "0")
End If