我在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, 保罗
答案 0 :(得分:0)
您是否考虑过子窗体中的控件来计算记录?这可以通过名称在主窗体中引用。或者,您可以参考MySubformControl.Form.Recordset.Recordcount