我希望表单数据水平对齐而不是垂直对齐。 这是当前显示的表单的快照。
我想更改它,使其看起来像这样:
Set xmlDoc = CreateObject( "Microsoft.XMLDOM" )
xmlDoc.Async = "False"
xmlDoc.Load("C:\Program Files (x86)\Mail Enable\Postoffices\ACS\MAILROOT\name\Inbox\_index.xml")
strQuery = "//ELEMENT/ (FROM | TO | SUBJECT)"
'strQuery = "ELEMENT"
Set colNodes = xmlDoc.SelectNodes(strQuery)
For Each objNode In colNodes
WScript.Echo objNode.NodeName & ": " & objNode.Text
Next
如何更改对齐方式,以使列标题显示为行标题,并且其对应的值水平显示而不是垂直显示?
谢谢你们的答复和建议 @CPerkins
到目前为止,我已经生成了此查询
+------------+--------+--------+--------+--------+--------+
| Subject | 56-020 | 56-020 | 56-020 | 56-020 | 56-020 |
| TargetDays | . | 0 | 1 | 2 | 6 |
| MAP | 80 | 67 | 84 | 73 | 85 |
+------------+--------+--------+--------+--------+--------+
这会产生这样的结果
TRANSFORM First(VITALS.MAP) AS FirstOfMAP
SELECT VITALS.Subject
FROM VITALS
GROUP BY VITALS.Subject
ORDER BY Val(VITALS.TargetDays)
PIVOT VITALS.TargetDays;
它给出所有主题的结果。主题为行标题,目标日期显示为列名称,相应的MAP值显示为值。我对此有两个疑问。
我想对列值进行排序 例如,当前显示为
主题_ 0 1 13 2 20 28 6 9
我希望它显示为
Subject _ 0 1 13 2 20 28 6 9
22-001 82 75 102 . 80 . . 89 83
24-002 . . . . . . . . .
Subject _ 0 1 13 2 20 28 6 9
25-001 . .
27-001 110 63 87 . 92 . . 124 96
请告诉我如何实现?
谢谢。
P.S:有人告诉我们可以像矩阵一样使用辅助表来转置表。有谁知道如何做到这一点?谷歌搜索后,我发现这个概念没有可理解的来源。
答案 0 :(得分:0)
术语:由于该问题涉及将行转换为列,将列转换为行-包括中间结构和逻辑,因此详细说明可能会引起混淆。我将使用术语 record 来引用源表/查询行,并使用术语 field 来引用相应的列。这些已经是讨论关系数据库时常用的术语,但是我专门将这些术语与其上下文分开使用,例如水平或垂直,行或列。对术语行或列的任何使用都是故意的,并且暗含特定表或查询的上下文。
Access不支持带有右侧标题的本机水平报告,并且数据记录自动从左到右列出。正如评论中指出的那样,交叉表查询(或数据透视表)是用于汇总数据的,它不会产生默认报表的完全水平版本,所有表的列和行及其标题正在转变。
另一种方法是将转换后的数据放入单独的辅助表中,然后生成一个以辅助表为其RecordSource的报告。报表设计器中适当的格式可以应用于模拟水平标题等。
注意事项:此技术仅是一种有用的解决方法,用于生成记录有限的简短水平报告,尤其对子报告有用。此技术将不会生成跨多个页面的完整水平报告,也不会生成自动调整大小的列以及其他可用于内置垂直报告行为的功能。 (如果您很聪明,也许可以开发多页报告,但是如果有必要,您应该考虑使用另一种方法,也许可以使用第三方报告生成实用程序。)
创建一个辅助表。
[field_header]
的列。指定必须填写。为源查询的每个转换后的记录定义列。
[Record001]
,[Record002]
,... 填充辅助表。
[field_header]
的列值。 使用辅助表作为RecordSource创建报告。
[field_header]
设置列格式。也许添加一条垂直线或其他可以将其区分为标题的行。整个过程可能应该在Visual Basic(VBA)函数中完成。就其性质而言,此类代码支持多种方法来执行此操作,例如通过生成和执行SQL语句,或使用DAO记录集和Access Automation对象进行表定义等。替代编程对象为“ Microsoft ActiveX数据对象”和“ Microsoft ADO Ext”。 。。。
答案 1 :(得分:-2)
好像您在布局视图中。如果切换到设计视图,则可以将设计控件放置在所需的任何方向。可以在界面上拖动它们,并根据需要调整方向。如果您对使用该界面有特定疑问,请在评论中回复。
另一个注意事项是您可能已为这些控件分配了“布局”。您需要通过拖动单击或通过单击组右上角的+来全部选择它们,右键单击组中的一个控件,然后转到布局并单击“删除布局”。这样一来,控件就可以彼此独立移动。
最后一件事,这只是首选项,但我通常希望将它们设置为“弹出窗口”,以便它们出现在新窗口中。我发现它使设计更符合我在设计表格时的想法。只是我的2美分。可以在表单属性的“其他”标签中找到。