Использовать идентификатор репликации доступа в форме как число

У меня есть несколько таблиц в 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, Паоло


person PaoloFCantoni    schedule 03.06.2012    source источник


Ответы (1)


Рассматривали ли вы элемент управления в нижнем колонтитуле подчиненной формы для подсчета записей? На него можно ссылаться в основной форме по имени. В качестве альтернативы вы можете обратиться к MySubformControl.Form.Recordset.Recordcount

person Fionnuala    schedule 03.06.2012
comment
Привет, Рему! Это нижний колонтитул подчиненной формы? Я попробовал ‹MySubformName› .Form.Recordset.Recordcount, но это вызвало ошибку имени. Но НАСТОЯЩАЯ проблема - это использование GUID, а не количество. Почему GUID ведут себя так? - person PaoloFCantoni; 05.06.2012
comment
Получил подсчет с использованием свойств подчиненной формы - так что спасибо за это, Рему. Но существенный вопрос все еще остается в силе ... Паоло - person PaoloFCantoni; 05.06.2012
comment
Ошибка имени может быть связана с использованием имени формы, содержащейся в элементе управления подчиненной формы, а не имени элемента управления подчиненной формы. Подчиненные формы также являются самостоятельными формами. - person Fionnuala; 05.06.2012
comment
GUID может быть проблемой в MS Access: stackoverflow.com/questions/393381/ - person Fionnuala; 05.06.2012