У меня есть несколько таблиц в MS Access Db, которые должны использовать идентификаторы репликации (GUID) в качестве первичного ключа (и, следовательно, также в качестве ограничений внешнего ключа в отношениях между ними). Данные для этих таблиц поступают из внешнего приложения, и я не могу использовать какое-либо другое поле в качестве основного, поскольку они не уникальны. (Я также решил не использовать локальные целочисленные ключи «in loco parentis» для GUID).
База данных работала нормально, и все отношения работали, как ожидалось, и я могу представить связанные записи в иерархической форме MS Access (один ко многим ко многим). Проблема возникает, когда я пытаюсь представить счет как часть отношений.
Если у меня есть два поля GUIDInParent и GUID в Child, я могу получить дочерние элементы, создав форму с Source Object = ParentToChildRelationship и Link Master Field = GUIDInParent и Link Child Field = GUIDInChild.
Однако, если я хочу указать, сколько детей я собираюсь отобразить (поскольку они могут быть скрыты под прокручиваемым разделом), я использую отдельное поле формы, заполняемое с помощью DCount("1", "ParentToChildRelationship", "[GUIDinChild] = '" & [GUIDInParent] & '")
Для поля GUID - это не работает ... Причина, по-видимому, в том, что в форме GUID (идентификатор репликации) отображается как «GUID» - формы "{HHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH}"
, когда он назначен другому полю (буквально) отображается как "китайский". Даже назначение с помощью функции GUIDAsString этого не меняет.
Что происходит, и могу ли я использовать эти GUID по своему усмотрению?
Я «подстроил» решение, имея два столбца в таблицах (GUID - в виде числа и GUIDString - в виде строки), оба устанавливают одно и то же значение и используют рендеринг, который работает в каждом случае ... Таким образом, DCount("1", "ParentToChildRelationship", "[GUIDinChild] = '" & [GUIDInParent] & '")
становится: DCount("1", "ParentToChildRelationship", "[GUIDinChild] = '" & [GUIDInParentString] & '")
и таким образом работает ...
TIA, Паоло