当前数据库中的转置表[英] Transpose Table in Current Database

问题描述

{NeoPa - Admin} 这个问题是从另一个线程中分离出来的(如何在 Access 中转置表/查询?).

阿德齐

我使用了你的下载,它对我来说也很好用,但我只需要代码来转置表格并将其保存在同一个名称下并转置在同一个数据库中?我需要以表格形式执行此操作还是可以继续直接选择宏?我将如何进行所需的更改?

推荐答案

抱歉,Sally,没有意识到您已经在 Access/VBA 论坛中发帖.目前正在度假,但将在周四早上返回,我很乐意再次重温这个问题.当然,这是假设在那之前没有人提供答案.

我仍在休假,没有 Access,但我想我会发表一些评论以及说明如何进行此过程的大纲.
  1. 您应该注意的第一点是,您在访问表.这意味着如果您的表中有超过 255 行,则无法转置数据.但是,您可以像在演示中一样,创建一个逗号分隔的文本文件,然后将其导入 Excel,如果 >255.
  2. 话虽如此,这里是我的一般大纲,关于如何将数据转置到数据库中的另一个表中.
    1. 我们将假设您的表在名为 tblData 中.如果 tblData 中的行数 >255,则Transport根本无法完成,我们将退出代码.如果行数 <= 255,则代码将通过.
    2. 将 tblData (lngNumOfRows) 中的行数以及变量 (strTblName) 中的表名传递给公共函数.
    3. 此函数将动态创建一个名为 strTableName 的表,其中包含 lngNumOfRows 字段/列.为简单起见,所有字段都将为文本类型.如果我们必须分析 tblData 中的每个字段,然后匹配 tblData_Transposed 中相应的字段类型,事情会变得非常复杂.在创建表并填充表后,您可以轻松更改类型.
    4. 然后创建一个基于 tblData 的记录集,然后用代表行的第一个维度和第二个维度填充一个二维数组代表列.数组中行列交集 MyArray(Row, Column) 将包含行/列交集的数据.
    5. 我们将基于新表创建另一个记录集(strTblName_Transposed) 将专门用于填充新创建的表.
    6. 我们现在将使用嵌套 For...Next 循环遍历 MyArray 并基本上交换 Row 和列维度,在此过程中填充 strTblName_Transposed.
  3. 我知道这一切听起来令人困惑,但我想给你一些指示,告诉你这是可以做到的.在此期间继续努力,看看你能想出什么,直到我周四早上回来.

这比我想象的要困难一些,或者这可能是我从假期回来的第一天!(哈哈).无论如何,我能够按照我在帖子# 15 中指出的指南在表格中转置数据.与其详细解释这一切是如何工作的,我将简单地附上我为之创建的演示您,如果有任何问题,请随时提出.

PS 我忘记纳入代码的一项是检查 255 字段限制访问表.这一点非常重要,但可以在现有准则中轻松实施.祝你的项目好运.
附加文件
文件类型:zip Transpose With Array.zip (27.0 KB,68 次浏览)

本文地址:https://www.itbaoku.cn/post/1050684.html