我使用类似下面从一个未结合的形式传递信息到另一个(借口没有错误检查):

Sub Button_Click()
Dim db as DAO.database
Dim rs as DAO.recordset
Dim sql as string

docmd.openform "NextFormIamAbouttoUse"

sql = "SELECT * FROM tblMain WHERE MainID = " & Me.As_MainID & ";"

' usually debug here

set db = currentdb
set rs = db.openrecordset(sql)

if rs.eof then
   msgbox "oops message"
else
     rs.movefirst
          [Forms]![NextFormIamAbouttoUse].as_mainID = rs![MainID]
          [forms]![NextFormIamAbouttoUse].value1 = rs![value1]
          ' etc

     rs.close
     set db = nothing
     set rs = nothing
     sql = ""
 end if

 'error stuff
  end sub

行,所以我可以用这种东西从形式传递信息报道呢?看到我用了很多的充满文本框仪表盘,在文本框中起不到任何入境目的的形式,而宁愿显示快捷的信息。

用户通过不同形式的导航来构建的“仪表板状”形式自己的喜好,然后在某一时刻要打印。所以我想建立查找一个样(在所提供的数据),在每个点报告,以便他们可以打印的,他们通过这些形式建立在信息的页面。

,所以我试图与一个报告做到这一点:

Sub Button_Click()
Dim db as DAO.database
Dim rs as DAO.recordset
Dim sql as string

docmd.openreport "ReportTester", acViewPreview

sql = "SELECT * FROM tblMain WHERE MainID = " & Me.As_MainID & ";"

' usually debug here

set db = currentdb
set rs = db.openrecordset(sql)

if rs.eof then
   msgbox "oops message"
else
     rs.movefirst
          [reports]![ReportTester].as_mainID = rs![MainID]
          [reports]![ReportTester].value1 = rs![value1]
          ' etc

     rs.close
     set db = nothing
     set rs = nothing
     sql = ""
 end if

 'error stuff
  end sub

只是作为一种猜测,并没有奏效。没有错误,或任何东西。只是将不显示任何信息,这种方式。甚至不会通过的ID号。

所以我想,在打开的AcViewPreview报告意味着我不能在事后这些文本框添加信息,但我仅仅指刚不能肯定。因此,在这个任何意见是非常赞赏。谢谢!

有帮助吗?

解决方案

您有几种选择。您可以创建一个查询,并通过表单控件的值到那里的价值,从而创造了1个记录查询,你可以在你的基础报告。

每个列将看起来像这样:数据:!表格[MyForm的] [MyControl]

您也可以直接从形式直接绑定的控件报表控件。

您将需要离开,而该报告被打开,如果你选择这些途径包含值的形式开放。没有复杂的代码需要的。

其他提示

我觉得我失去了一些东西。你为什么不只是有报告的记录源是一样的窗体的记录,然后在运行时过滤到特定MainID在DoCmd.OpenReport的WhereCondition参数?然后你就可以,而不需要有开放的形式运行报告。

除非形式是未结合的,或具有对实时计算昂贵的字段,也看不出任何优势,以报告在所有结合的形式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top