具有用户消息过滤功能的 MS Access Messenger 应用程序

问题描述 投票:0回答:1

我正在我们的 MS Access“ERP 系统”中制作一个内部短信应用程序。

该表名为“tbl_0_messages”

Field Name          DataType        Lookup
message_id          AutoNumber
message_sender_id   Number          emloyee_id from employees table
message_receiver_id Number          emloyee_id from employees table
message_text        LongText
message_created     DateTime
message_received    Yes/No

Employee_id 1 是我用于所有员工的数字,1 以上的数字当然是所有员工。

我有一个名为“frm_0_messages”的连续表单 与表具有相同的字段名称,并且连续表单标题中具有名称为“cmb_message_sender_id”的未绑定组合框,用于过滤和创建新消息。

当我们创建一条新消息时,它使用 ComboBox 中的值作为“message_sender_id”作为默认值。

我已经在连续表上做了记录源/查询:

SELECT tbl_0_messages.message_id, tbl_0_messages.message_sender_id, tbl_0_messages.message_receiver_id, tbl_0_messages.message_text, tbl_0_messages.message_created, tbl_0_messages.message_received FROM tbl_0_messages;

当然运行得很好。

我需要的是能够过滤消息,以便员工看到他们自己创建的所有消息、他们作为接收者的消息以及发送给所有员工(employee_id=1)的消息。

当我向记录源添加 WHERE 子句时:

WHERE (((tbl_0_messages.message_sender_id)=[Forms]![frm_0_messages]![cmb_message_sender_id])) OR (((tbl_0_messages.message_receiver_id)=IIf([Forms]![frm_0_messages]![cmb_message_sender_id]>1,[Forms]![frm_0_messages]![cmb_message_sender_id],"*")))

我收到运行时错误“3071”

我已经尝试了其他几个 WHERE 子句,但没有成功,所以我非常感谢有关此问题的帮助。

谢谢;-)

forms ms-access where-clause
1个回答
0
投票

可能是这样的:

WHERE (message_sender_id In (1, [Forms]![frm_0_messages]![cmb_message_sender_id])) OR (message_receiver_id = [Forms]![frm_0_messages]![cmb_message_sender_id])
© www.soinside.com 2019 - 2024. All rights reserved.