当我尝试在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
答案 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