【问题标题】:How to get Access Report textbox to concatenate records from a table when the report is generated from a form?从表单生成报告时,如何获取访问报告文本框以连接表中的记录?
【发布时间】:2017-06-19 21:24:42
【问题描述】:

基本上这包括 3 个组件。

首先是一个表单,这里用户通过一个列表框选择多个名称。

例如,它们会突出显示以下名称。

Jane
John
Bob

他们单击一个名为“btnGenerate”的按钮,这三个名称作为单独的记录输入到一个名为“NameCriteria”的表中,如下所示:

ID    Name
1     Jane
2     John
3     Bob

除此之外,单击 btnGenerate 按钮会生成一份报告。

我似乎无法在报告中获得工作的摘要,我希望获得表格上选择的内容的摘要。我在此报告上有一个文本框,我正在尝试生成以下结果

Jane, John, Bob

或者如果点击 btnGenerate 时只有一个名称突出显示,则文本框将只显示

Jane

我似乎无法让这个工作。在报告中,在文本框上,在文本框的数据/控件源下,我输入了以下代码。

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

这只是将文本框留空。我也尝试过使用

引用表“NameCriteria”
=[Table]![NameCriteria]![Name]

然后我在文本框中返回#Error。

【问题讨论】:

    标签: sql database forms vba ms-access


    【解决方案1】:

    我会按照这些思路使用一些东西,使用 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]")
    

    【讨论】:

    • 感谢您的快速回复!我有点困惑,我将在哪里输入这两段代码?我猜第二部分在文本框的“数据”部分?但是对于第一部分,我只是创建一个模块吗?
    猜你喜欢
    • 2010-09-19
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 2011-06-20
    • 2023-03-11
    • 2010-10-15
    相关资源
    最近更新 更多