我正在我们的 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 子句,但没有成功,所以我非常感谢有关此问题的帮助。
谢谢;-)
可能是这样的:
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])