在表单中使用Access复制ID作为数字

时间:2012-06-03 10:41:31

标签: forms ms-access ms-access-2007 guid ms-access-2010

我在MS Access Db中有许多表必须使用复制ID(GUID)作为主键(因此也作为它们之间关系中的外键约束)。这些表的数据来自外部应用程序,我不能将任何其他字段用作主要字段,因为它们不是唯一的。 (我也选择了,不要使用本地整数键,“在loco parentis中”作为GUID)。

数据库工作正常,所有关系都按预期工作,我能够以分层MS Access形式(一对多对多)呈现相关记录。当我尝试将计数作为关系的一部分时,就会出现问题。

如果我将Child中的GUIDInParent和GUID作为两个字段,我可以通过创建一个包含Source Object = ParentToChildRelationship和Link Master Field = GUIDInParent和Link Child Field = GUIDInChild的表单来获取子项。

但是,如果我想表明我将要显示多少个Chidren(因为它们可能隐藏在滚动部分下),我使用通过DCount("1", "ParentToChildRelationship", "[GUIDinChild] = '" & [GUIDInParent] & '")填充的单独表单字段

对于GUID字段 - 这不起作用...原因似乎是在表单上,​​GUID(复制ID)显示为“GUID” - 在分配时为"{HHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH}"形式到另一个领域它(字面意思)显示为“中国人”。即使通过GUIDAsString函数进行分配也不会改变这一点。

有什么方法可以按照我的意愿使用这些GUID?

我通过在表中有两列(GUID - 作为数字和GUIDString - 作为字符串)让“jury操纵”解决方案,两者都设置为相同的值并使用在每种情况下都有效的渲染... DCount("1", "ParentToChildRelationship", "[GUIDinChild] = '" & [GUIDInParent] & '")因此成为: DCount("1", "ParentToChildRelationship", "[GUIDinChild] = '" & [GUIDInParentString] & '") 因此有效...

TIA, 保罗

1 个答案:

答案 0 :(得分:0)

您是否考虑过子窗体中的控件来计算记录?这可以通过名称在主窗体中引用。或者,您可以参考MySubformControl.Form.Recordset.Recordcount