Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access 2010对象正在传递值而不是引用。。。有时_Ms Access_Ms Access 2010 - Fatal编程技术网

Ms access MS Access 2010对象正在传递值而不是引用。。。有时

Ms access MS Access 2010对象正在传递值而不是引用。。。有时,ms-access,ms-access-2010,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 In

我为一个更大的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。在我反编译数据库并重新编译它之前,这一直有效。做了一个更改(更改了第一个变量的名称),再次编译它,它就工作了。当我今天开始工作时,有人告诉我它已经不工作了。任何想法都将不胜感激

编辑:我忘了提到TgtCtls是一个表单范围的数组,它在顶部变暗了:

Option Compare Database
Dim TgtCtls(2) as Control

当他们说“它不起作用”时,你是什么意思。该值可能是控件的默认属性。为什么你认为它不起作用?看起来你引用了这个CTL的所有属性。我的意思是,用户告诉我有问题,我推断出了这个问题。问题是,当我尝试引用TgtCtl的任何属性时,它表示没有对象。我确实找到了一个解决办法,把它从一个子函数变成了一个函数,但是现在这已经变成了一个理论问题,为什么我把变量作为值而不是引用来传递。当他们说“它不工作”时,你是什么意思。该值可能是控件的默认属性。为什么你认为它不起作用?看起来你引用了这个CTL的所有属性。我的意思是,用户告诉我有问题,我推断出了这个问题。问题是,当我尝试引用TgtCtl的任何属性时,它表示没有对象。我确实找到了一个解决办法,把它从一个子函数变成了一个函数,但是现在这已经变成了一个理论问题,为什么我要把变量作为值而不是引用来传递。