MS Access 2010对象传递值而不是引用...有时

时间:2016-07-25 16:30:22

标签: ms-access ms-access-2010

我有一小段代码用于更大的MS Access数据库,它喜欢不正常的行为。我不能肯定地说,但是当我编译或重新编译数据库时它似乎发生了变化。这是代码:

Private Sub FindCtls()

Dim DatType as String
Dim thisCTL as Control

DatType = Right(ActiveControl.Name, Len(ActiveControl.Name)-4)

For Each thisCTL In Me.Controls
   If InStr(1, thisCTL.Name, DatType, 2) > 0 Then
     Select Case Left(ThisCtl.Name,4)
       Case "Sel_"
           Set TgtCtls(0) = thisCTL
       ' A buncha other Cases
     End Select
  End If
Next thisCTL

End Sub 

问题是,当我单步执行代码时,由于某种原因,thisCTL作为控件的值传递,而不是控件本身。我到处寻找这个答案,这让我使用“Set”命令而不是仅仅把TgtCtls(0)= thisCTL。这有效,直到我反编译DB并重新编译它。做了一个更改(更改了第一个变量的名称),再次编译它,它工作。当我今天上班时,有人告诉我它不再工作了。任何想法都将不胜感激。

编辑:我忘了提到TgtCtls是一个表格范围的数组,在顶部是Dim'd:

Option Compare Database
Dim TgtCtls(2) as Control

0 个答案:

没有答案