我在Access数据库中有一个指向Outlook Mailitem文件夹的链接表。这样做很方便,因为它可以不断进行自我更新,但是我无法添加额外的字段来将这些记录与父表相关联。
我的解决方法是将自动生成/添加的ID字符串放入主题中,以便从那里开始工作。为了使表单按照我需要的方式工作,我正在尝试创建一个查询,该查询从链接表中获取我需要的字段,并添加一个带有提取的ID的计算字段,以便可以将其引用为与之相关的记录。表格。
查询工作正常(我提取了所有记录及其ID),但是当我尝试通过计算字段来过滤此查询中的记录时,我得到:
该表达式的输入错误,或者过于复杂而无法评估。例如,一个数字表达式可能包含太多复杂的元素。通过将表达式的一部分分配给变量来尝试简化表达式。
我尝试将计算出的字段分为三个字段,以使其更易于阅读,希望这样可以更轻松地评估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 =给定参数的所有记录,但仍然出现相同的错误。
添加支持项目ID的工作查询如下所示:
+----+--------------------------------------+----------------------+----------------------+------------+----------------------------------+
| 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... |
+----+--------------------------------------+----------------------+----------------------+------------+----------------------------------+
有问题的视图将填充一个数据表,该数据表看起来与ID与当前SupportProject记录的ID匹配的项相同,并在选择新记录时更新。单独的文本框应显示在那个网格中选择的记录的全部内容,例如:
您是否尝试过将其关闭然后再次打开?
发件人:support@domain.com
在:2019年2月21日
感谢您的提问。此问题已分配给支持项目#CS2,支持人员将尽快与您联系以帮助您。由于它被认为是中等优先级,因此您应该期待每日更新。
谢谢
支持
来自:某人@公司
在:2019年2月21日
我的计算机确实需要一些帮助。似乎真的很慢,我无法高效地完成工作。
当我尝试使用计算出的数字与SupportProject表的PK相关时,这些事情都不会发生...
我不知道这是否是问题的一部分,但是无论我使用Int(Mid(Subject...
还是Val(Mid(Subject...
,我仍然显然会获得Double,其中ID字段(作为自动增量ID)为长。我无法解决如何强制它返回Long的问题,所以我无法测试这是否是问题所在。
答案 0 :(得分:0)
那是发布的SQL产生的输出?我确实想要原始数据,但足够接近。如果要求提取...CS
之后的数字,请在查询中计算并保存查询:
Val(Mid([Subject],InStr([Subject],"CS")+2))
然后构建另一个查询以将第一个查询连接到表。
SELECT qryProjectEmailWithID.*, SupportProject.tst
FROM qryProjectEmailWithID
INNER JOIN SupportProject ON qryProjectEmailWithID.ID = SupportProject.ID;
过滤条件可以应用于任何一个ID字段。
子窗体可以在主窗体上显示与SupportProject记录同步的相关子记录。
我先用您的数据然后通过指向我的收件箱的链接测试了ID calc。查询联接没有问题。