MS-Access 中的未嵌套行?
Posted
技术标签:
【中文标题】MS-Access 中的未嵌套行?【英文标题】:Unnest row in MS-Access? 【发布时间】:2017-12-01 16:02:29 【问题描述】:目前,属性块和批次信息在单独的输入框中输入到我们的 ms-access 数据库中,然后填充表格。一盒用于块,一盒用于批次。如果一个应用程序包含一个块但多个批次,则用户输入以逗号分隔的批次信息。
像这样:
最后的表很乱,无法正常查询。 ms-access 中是否有办法让用户输入以逗号分隔的数据,但取消表中的行,以便每个块和批次都有自己的行?
像这样:
【问题讨论】:
你可以试试多值字段。从我读到的内容来看,它们并不出色-它们只是将多值部分放在隐藏的表格中。基本上你想要做的但隐藏在 Access 的内部工作中(然后真的很难将你的数据库转移到一个真实的系统)。无论如何,这是一个链接 - Guide to multivalued fields 对逗号分割数据,循环插入,一一插入。 正如@Kostas 建议的那样,构建规范化的表结构,然后使用 VBA 代码将用户 CSV 输入保存到表中。然而,这取决于用户的一致性——如果他们忘记输入逗号,那么整个方法就会陷入困境。分割空间也有同样的风险。尽管我不喜欢 MVF,但它会更好。 【参考方案1】:为了便于以后查询,我对多值字段不太走运,并且可以肯定的是,循环在逗号和空格上的分隔效果更好。我会有一个声明,首先删除所有逗号,然后是空格“,”,然后是所有逗号,然后自己查找任何空格。之后,如果用户输入多个批次以确认输入,您可以向用户提供确认屏幕。一些简单的事情,就像你上面的例子一样,会弹出并声明“你输入了 3 个总手数(7、9 和 13),这是正确的吗?如果他们说‘不’,那么你可以给他们输入表格以更正他们的条目。
只是一个想法。让我知道这是否有帮助。此外,如果您可以提供输入表单的屏幕截图,我也许可以提供进一步的指导。
【讨论】:
以上是关于MS-Access 中的未嵌套行?的主要内容,如果未能解决你的问题,请参考以下文章
MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据
MS-ACCESS:删除除 top 1 之外的所有行并从查询中更新表