Идентификатор, извлеченный из строки, не пригодной для подключения к связанной форме - «выражение ... слишком сложное» - PullRequest
0 голосов
/ 11 марта 2019

У меня есть связанная таблица с папкой Outlook Mailitem в моей базе данных Access.Это удобно тем, что он постоянно обновляется, но я не могу добавить дополнительное поле, чтобы связать эти записи с родительской таблицей.

Мой обходной путь - поместить автоматически сгенерированную / добавленную строку идентификатора в темучтобы я мог работать оттуда.Чтобы заставить мою форму работать так, как мне нужно, я пытаюсь создать запрос, который берет нужные мне поля из связанной таблицы и добавляет вычисляемое поле с извлеченным идентификатором, чтобы на него можно было ссылаться для связанных записей вформа.

Запрос работает нормально (я извлекаю все записи и их идентификаторы), но когда я пытаюсь отфильтровать записи из этого запроса по вычисляемому полю, я получаю:

Это выражение набрано неправильно, или оно слишком сложно для оценки.Например, числовое выражение может содержать слишком много сложных элементов.Попробуйте упростить выражение, присвоив части выражения переменным.

Я попытался разделить вычисляемое поле на три поля, чтобы его было легче читать, надеясь, что это упростит оценку для Access, ноЯ все еще получаю ту же ошибку.Мой базовый запрос в настоящее время:

SELECT InStr(Subject,"Support Project #CS")+19 AS StartID, 
       InStr(StartID,Subject," ") AS EndID, 
       Int(Mid(Subject,StartID,EndID-StartID)) AS ID, 
       ProjectEmails.Subject, 
       ProjectEmails.[From], 
       ProjectEmails.To, 
       ProjectEmails.Received, 
       ProjectEmails.Contents
FROM ProjectEmails
WHERE (((ProjectEmails.[Subject]) Like "*Support Project [#]CS*"));

Я пытался привязать подчиненную форму к этому запросу на qryProjectEmailWithID.ID = SupportProject.ID, где основная форма связана с SupportProject, и я получаю вышеуказанную ошибку.Я попытался создать запрос, который выбирает все записи из этого запроса, где идентификатор = данный параметр, и я все еще получаю ту же ошибку.


Рабочий запрос, который добавляет идентификаторы проектов поддержки, будет выглядеть следующим образом:

+----+--------------------------------------+----------------------+----------------------+------------+----------------------------------+
| ID |               Subject                |          To          |         From         |  Received  |             Contents             |
+----+--------------------------------------+----------------------+----------------------+------------+----------------------------------+
|  1 | RE: Support Project #CS1 ID Extra... | questions@so.com     | Isaac.Reefman@so.com | 2019-03-11 | Trying to work out how to add... |
|  1 | RE: Support Project #CS1 ID Extra... | isaac.reefman@so.com | questions@so.com     | 2019-03-11 | Thanks for your question. The... |
|  1 | RE: Support Project #CS1 ID Extra... | isaac.reefman@so.com | questions@so.com     | 2019-03-11 | You should use a different me... |
|  2 | RE: Support Project #CS2 IT issue... | support@domain.com   | someone@company.com  | 2019-02-21 | I really need some help with ... |
|  2 | RE: Support Project #CS2 IT issue... | someone@company.com  | support@domain.com   | 2019-02-21 | Thanks for your question. The... |
|  2 | RE: Support Project #CS2 IT issue... | someone@company.com  | support@domain.com   | 2019-02-21 | Have you tried turning it off... |
|  3 | RE: Support Project #CS3 email br... | support@domain.com   | someone@company.com  | 2019-02-12 | my email server is malfunccti... |
|  3 | RE: Support Project #CS3 email br... | someone@company.com  | support@domain.com   | 2019-02-12 | Thanks for your question. The... |
|  3 | RE: Support Project #CS3 email br... | someone@company.com  | support@domain.com   | 2019-02-13 | I've just re-started the nece... |
+----+--------------------------------------+----------------------+----------------------+------------+----------------------------------+

Представление, о котором идет речь, заполняет таблицу данных, которая выглядит одинаково только с элементами, идентификатор которых совпадает с идентификатором текущей записи SupportProject, и обновляется при выборе новой записи.В отдельном текстовом поле должно отображаться полное содержимое записи, выбранной в сетке , , например:

Вы пытались выключить и снова включить ее?

От: support@domain.com

Вкл .: 21/02/2019

Спасибо за ваш вопрос.Вопрос был передан в службу поддержки № CS2, и сотрудник службы поддержки свяжется с вами в ближайшее время, чтобы помочь вам.Так как он считается средним приоритетом, вам следует ожидать ежедневных обновлений.

Спасибо,

Поддержка

От кого-то @ компании

Вкл: 21 /02/2019

Мне очень нужна помощь с компьютером.Это кажется очень медленным, и я не могу эффективно выполнять свою работу.

Ничего из этого не происходит, как, например, когда я пытаюсь использовать вычисленное число для связи с PK таблицы SupportProject ...


Я не знаю, является ли это частью проблемы, но использую ли я Int(Mid(Subject... или Val(Mid(Subject..., я все еще, по-видимому, получаю Double, где поле ID (как идентификатор автоинкремента)длиннаяЯ не могу понять, как заставить его вернуть Long, поэтому я не могу проверить, в этом ли проблема.

1 Ответ

0 голосов
/ 11 марта 2019

Итак, что является результатом, полученным в результате размещения SQL?Я действительно хотел сырые данные, но достаточно близко.Если требуется извлечь число после ...CS, рассчитайте в запросе и сохраните запрос:
Val(Mid([Subject],InStr([Subject],"CS")+2))

Затем создайте другой запрос, чтобы присоединить первый запрос к таблице.

SELECT qryProjectEmailWithID.*, SupportProject.tst
FROM qryProjectEmailWithID
INNER JOIN SupportProject ON qryProjectEmailWithID.ID = SupportProject.ID;

Критерии фильтра могут применяться к любому полю идентификатора.

В подчиненной форме могут отображаться связанные дочерние записи, синхронизированные с записями SupportProject, в главной форме.

Я проверил вычисление идентификатора с вашими данными, а затем сссылка на мой почтовый ящик.Нет проблем с соединением запросов.

...