0

我老板给我的 1,500 页 Access 97 Bible(别笑!)并没有解决我如何解决他的问题的问题,因为它有 VBA 代码。

首先让我明确一点,我已经尝试在没有(很多)编码的情况下解决这个问题,而且我已经在 VBA 中编写了相当多的代码,所以我基本上熟悉大多数东西,包括记录集、查询等等等对如何使用来自 VBA 变量的数据形成报告的 MS Access 限制存在问题。我在大多数编程语言中也是多才多艺的,但这不是语言问题,而是“如何/什么是可能的”问题。

我现在的问题是将查询字段拖到详细信息子表单中并将它们放入列设置左侧和顶部的单元格中,使用 VBA 代码可以正常移动它们,但是每个单元格都在一个新页面上。不幸的是,每个单元格中有多个数据不符合可用的创建报告指南选项。

所以我的问题很简单:有人可以指出我在我选择的纸张尺寸上创建、放置和填充 VBA 变量字符串、文本字段的工作示例吗?

编辑:以上不是一个选项,因为我知道这将禁止客户端获取 .mde 数据库。那么,剩下的就是仅仅询问一些关于如何将几行按工作日和机器分组(见下文)到每个单元格的记录集或类似文件中的合理建议。我想最好的方法是计算表中的列数(sql 结果中的机器)并使用虚拟数据创建 5 行,然后遍历结果行并将数据放在相关控件中。但是,如果您有更好更快地完成这项工作的想法,请将它们写成答案。

对不起,我知道有些东西我不明白。基本上,我认为 Access 支持通过 VBA 动态创建报告,即。“使用数据生成页面”而不是“准备连接到数据源的控制流”。但是 Access 要求您手动创建大量虚拟的、未链接的控件,然后填充或隐藏它们,这就是它们如何变得“动态”的方式。

这适用于访问本地和远程 ODBC SQL 数据库表(如果相关)的远程服务器上的 Access 2003。目标是制定一个包含 n 列(n=某个工厂的机器数量)x 5 行(工作日周一至周五)的周计划,并放置 1 个或更多记录集行(=该机器上当天的计划活动)在每个“n x 5 表格”单元格中。

如果您在这篇文章中发现发泄的挫败感,我只能请求您的原谅并希望您的理解。

4

2 回答 2

0

所以,有很多技术可以做到这一点:例如:1)为此使用动态sql:'创建一个函数来进行sql查询函数MakeMySQlReport(Parameters):Dim strSql as string Dim strMyVar as string

    strsql = vbnullstring
    strsql = "Select " & myVar1 & " as MyFieldVar1, * from myTable where Fieldx =" & Parameters
    MyReport.recordSource = ssql
End Function

例如:2)创建返回您的字符串的函数:

Function MyString1() as string
    MyString1 = 'ABC'
end Function

在您的报告中,选择文本框将接收值并输入 =MyString1()]

我希望这对您有所帮助,需要更多示例吗?

于 2012-01-05T01:46:33.967 回答
0

解决方案:

  • 手动创建许多对象(grr!)

  • 系统地命名它们

  • 把它们放在一个控制数组中(获取所有的 Me.Controls,筛选出你感兴趣的,然后把它们放在一个索引数组中)

  • 遍历数组并更改它们的属性

于 2012-10-17T09:18:52.667 回答