2017-02-02 30 views
0

本質上包括3個組件。如何從報表生成報表時獲取「訪問報表」文本框以連接表中的記錄?

首先是一個表單,在這裏用戶通過列表框選擇多個名稱。

例如,它們突出顯示以下名稱。

Jane 
John 
Bob 

他們點擊一個名爲「btnGenerate」按鈕,這三個名字得到輸入作爲單獨記錄到一個名爲「NameCriteria」像這樣的表:

ID Name 
1  Jane 
2  John 
3  Bob 

與此相伴,在點擊的按鈕btnGenerate生成報告。

我似乎無法工作的是,在報告中,我希望得到表格上所選內容的摘要。我有這個報告,我試圖去產生以下結果

Jane, John, Bob 

上的文本框或者如果只有一個名字突出時,點擊btnGenerate,文本框將只顯示

Jane 

我似乎無法得到這個工作。在報告中,在文本框的文本框的數據/控制源下,輸入了以下代碼。

=[Forms]![Report]![lstName] 

這只是將文本框留爲空白。我也嘗試使用

=[Table]![NameCriteria]![Name] 

引用表「NameCriteria」,我在文本框中返回#Error。

回答

0

我會沿着這些線使用ADO,但是這是漫長的一天,所以可能會有更簡單的解決方案。

Public Function CONCAT_SQL(strSQL As String) As String 

Dim r As ADODB.Recordset 
Dim a As Variant 

Set r = New ADODB.Recordset 
r.Open strSQL, CurrentProject.Connection, 1 

a = Split(r.GetString, Chr(13)) 
ReDim Preserve a(UBound(a) - 1) 

CONCAT_SQL = Join(a, ",") 

End Function 

調用像這樣,

me.textbox1.value = CONCAT_SQL("Select [Name] from [NameCriteria]") 
+0

感謝這樣一個快速反應!我有點困惑,我會在哪裏輸入這兩段代碼?我猜測第二塊是在文本框的「數據」部分?但是對於第一部分,我只是創建一個模塊? – Macellaria