Ms access 有条件地填充表单字段
在MS Access 2010数据库中,我有一个名为Ms access 有条件地填充表单字段,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,在MS Access 2010数据库中,我有一个名为CommunicationForm的表单,它基于CommunicationTable。数据库包含两个表,Clients和communicationable。CommunicationForm上的两个文本框需要按如下方式填充: If IsNull(CommunicationTable.LastName): CommunicationForm.FirstName = Clients.FirstName Communicatio
CommunicationForm
的表单,它基于CommunicationTable
。数据库包含两个表,Clients
和communicationable
。CommunicationForm
上的两个文本框需要按如下方式填充:
If IsNull(CommunicationTable.LastName):
CommunicationForm.FirstName = Clients.FirstName
CommunicationForm.LastName = Clients.LastName
Else:
CommunicationForm.FirstName = CommunicationTable.FirstName
CommunicationForm.LastName = CommunicationTable.LastName
我怎样才能做到这一点
我上传了一个简化版的数据库,其中只包含了足够的数据来重新创建问题
如果有人需要知道的话,这个奇怪要求的基本原理是,这是一个旧的非规范化数据结构和新的规范化数据结构之间的过渡期。最终,我们将去掉CommunicationTable中的名称字段。但就目前而言,如何以及在何处使用vba来实现上述要求 使用带有内部联接或左联接的SQL字符串创建查询qryClients:
SELECT IIF(ISNULL(CommunicationTable.LastName), Clients.LastName,
CommunicationTable.LastName) AS LastName,
IIF(ISNULL(CommunicationTable.FirstName), Clients.FirstName,
CommunicationTable.FirstName) AS FirstName
FROM CommunicationTable
INNER JOIN Clients
ON CommunicationTable.ClientID = Clients.ClientID;
然后
使用SQL字符串创建查询qryClients,并使用内部联接或左联接:
SELECT IIF(ISNULL(CommunicationTable.LastName), Clients.LastName,
CommunicationTable.LastName) AS LastName,
IIF(ISNULL(CommunicationTable.FirstName), Clients.FirstName,
CommunicationTable.FirstName) AS FirstName
FROM CommunicationTable
INNER JOIN Clients
ON CommunicationTable.ClientID = Clients.ClientID;
然后
CommunicationForm将修改CommunicationTable、Client或readonly中的数据?CommunicationForm将修改CommunicationTable、Client或readonly中的数据?谢谢+1用于指向一个有希望的方向。但是,每个客户端都有许多通信。用户从连续表单中选择特定的通信,并且所选通信表单中的通信ID用于检索特定表单的数据。此外,除了FirstName和LastName之外,通信表单中还有许多其他字段。我在文件共享站点的版本中留下了日期和通信字段来表示这一点。所有这些如何改变你的建议?在代码中的这一点上,没有。名称只是为了打印目的。谢谢+1用于指向一个有希望的方向。但是,每个客户端都有许多通信。用户从连续表单中选择特定的通信,并且所选通信表单中的通信ID用于检索特定表单的数据。此外,除了FirstName和LastName之外,通信表单中还有许多其他字段。我在文件共享站点的版本中留下了日期和通信字段来表示这一点。所有这些如何改变你的建议?在代码中的这一点上,没有。名称只是为了打印目的。