如何创建文本字段、调整它们的大小并将它们放在报表的列中的示例

Posted

技术标签:

【中文标题】如何创建文本字段、调整它们的大小并将它们放在报表的列中的示例【英文标题】:Examples of how to create text fields, size them, and put them in columns on a report 【发布时间】:2012-01-04 20:23:39 【问题描述】:

我老板给我的 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 表”单元格中。

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

【问题讨论】:

让机器按列浏览页面似乎很尴尬? 2 台机器将是 2 列和大量浪费的纸张空间。 15 台机器会建议字体和文本框太小而无法使用。像任何日历一样,顶部有 7 个工作日,然后向下运行 n 台机器会更好吗?此设置在 Access 中也很容易。遍历表明列大小永远不会一致,这意味着没有预先打印的表格或 OCR 系统或任何类型的自动扫描这些工作表中的作业编号或条形码。这样的布局因此更容易被人和机器阅读。 【参考方案1】:

因此,有很多技术可以做到这一点: 例如:1)为此使用动态sql: '创建一个函数进行sql查询 函数 MakemysqlReport(参数): 将 strSql 调暗为字符串 将 strMyVar 调暗为字符串

    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()]

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

【讨论】:

不,这部分我已经知道了!我需要解析查询结果行(没问题)并根据行数据动态创建和放置文本字段(问题)。【参考方案2】:

解决方案:

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

系统地命名它们

将它们放入一个 Control Array(获取所有 Me.Control,筛选出您感兴趣的,然后将它们放入一个索引数组中)

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

【讨论】:

以上是关于如何创建文本字段、调整它们的大小并将它们放在报表的列中的示例的主要内容,如果未能解决你的问题,请参考以下文章

SKScene:移动和调整调试字段的大小

覆盖 QML 行的 MouseArea(或自动调整大小的图像+文本)

jQuery 调整文本框大小以适应内容

动态调整文本大小以使整个文本行适合文本字段

Interface Builder 自动布局和调整大小

如何使用 CSV 创建本地用户并将它们放在一个组中