2011-04-11 88 views
0

我想弄清楚如何让我的Dlookup函数看起来像它的关联标签和标签的值。Dlookup依赖于标签/文本框

我的例子是:

=DLookup("[OfficeOf]","tblLocationMSTR","[LocationCode]=LABEL CONTENT HERE") 

而且最重要的是,我需要的东西,添加MID()命令是这样的:

=DLookup("[OfficeOf]","tblLocationMSTR","[LocationCode]=Mid("LABEL CONTENT HERE")") 
+1

你究竟想在这里完成什么?如果你告诉我们你的意图,我们可能能够以另一种方式让你到达那里。 – mwolfe02 2011-04-11 21:05:16

+1

我正在创建一个包含多个房间的地图,我希望文本框字段可以查看标签的标题信息以推导出放入框中的文本。如:Label1的标题是“RM 01-01-01”。所以在文本框里面写着“George”。我想复制粘贴文本框/标签并将标签更改为“RM 01-01-02”,并且texbox shoudl说Jenny。 – Dalagrath 2011-04-11 21:22:54

+0

非常有创意的解决方案,解决这个问题。我认为你正试图完成的“映射”方面的一部分将阻止你使用“标准”方法。不过,也许别人会有不同的想法。 – mwolfe02 2011-04-11 21:43:57

回答

1

你的文本框将有一组控件如果标签已附加。

=DLookup("[OfficeOf]","tblLocationMSTR","[LocationCode]='" & Me.TextBox1.Controls(0).Caption & "'") 

您必须确定窗体上的文本框名称。我以TextBox1为例。

0

设置窗体的OnLoad属性[Event Procedure]然后添加以下代码的形式背后:

Private Sub Form_Load() 
Dim Ctl As Control 

    For Each Ctl In Me.Controls 
     If Ctl.Tag = "some_text_used_as_a_flag" Then 
      Ctl.ControlSource = "=DLookup(""[OfficeOf]"",""tblLocationMSTR"",""[LocationCode]=""" & Ctl.Controls(0).Caption & """)" 
     End If 
    Next Ctl 
End Sub 

我以为你会想办法来指定哪些标签/文本框连击应该动态地更新。您可以通过将每个文本框的Tag属性设置为一些特定的文本,您可以在循环播放控件时进行检查。

+0

是不是每个控件的标签都是控件集合中的第一个项目,所以它会是我!MyControl.Controls(0)?我想在选项组中,如果你删除了原始标签,它可能最终不会成为集合中的第一个项目,但我总是使用Controls(0)来获取标签。 – 2011-04-13 01:52:25

+0

我在我的代码中使用'Controls(0)'。你在谈论哪部分代码? – mwolfe02 2011-04-13 10:59:29

+0

我误解了代码。我以为你正在走控制集合来找出哪个是标签。经过几天的考虑,我并不完全确定依靠标签作为集合中的第一项(尽管我有足够的代码完全符合这个假设),我感到很自在。尽管如此,我不能想象除了它所关注的选项组以外的其他控制。 – 2011-04-17 23:55:54