2011-04-11 56 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