我已经接管了一个数据库,该数据库的表具有多值字段,例如
我正在尝试将其转换为单值字段表,例如
两个表中的数字只是一个ID
,指的是一个名为Contact_ID
的人。
我已经尝试在使用Crosstab查询的Access和带有Transposed的Excel中做到这一点,但是我无法生成一个新表,其中一个列中包含同一Contact_ID
的多个示例,而第二列中却包含唯一关键字。
赞赏有关最佳方法的任何建议。
答案 0 :(得分:0)
使用未知数量的逗号分隔的字符串,最有可能使用记录集在表上进行迭代,使用TextBlock
函数来分隔项目,然后填充另一个记录集,例如:
Split
答案 1 :(得分:0)
多值字段中的值将来自数据库中的表。
要返回单个项目,您需要在查询字段中添加.Value
。
例如
如果Table1
包含ID
作为自动编号,并且MyLookUpItems
作为单个项目。
| MyLookUpID | MyLookUpField |
|------------|---------------|
| 1 | Alcohol |
| 2 | Smoking |
| 3 | diet |
| 4 | Nutrition |
Table2
包含MyMultiValueField
,显示多个值。
| MyMultiValueField |
|-------------------|
| Smoking, diet |
| Alcohol, diet |
要退回您要使用的单个项目:
SELECT MyMultiValueField.Value
FROM Table2
这将返回:
| MyMultiValueField.Value |
|-------------------------|
| diet |
| Smoking |
| Alcohol |
| diet |
然后您可以链接回原始ID:
SELECT MyLookUpID, MyLookUpField
FROM Table2 INNER JOIN Table1 ON Table2.MyMultiValueField.Value = Table1.MyLookUpID
它将返回:
| MyLookUpID | MyLookUpField |
|------------|---------------|
| 1 | Alcohol |
| 2 | Smoking |
| 3 | diet |
如果不确定多值字段的来源,请在设计视图中打开表,然后查看该字段的Lookup
标签。
Row Source
看起来像:
SELECT [Table1].[MyLookUpID], [Table1].[MyLookUpField] FROM Table1 ORDER BY [MyLookUpField];
显示Table1
是来源。
编辑:
现在,编写了所有这些内容。...只需查看表的设计,并且行源中的表 就是您要查找的单值字段表在您的问题中。