Ms access Access连续表单上的动态文本框内容

Ms access Access连续表单上的动态文本框内容,ms-access,dynamic,textbox,ms-access-2003,Ms Access,Dynamic,Textbox,Ms Access 2003,我有一个表id、姓名、姓氏、地址等。。除id之外的所有字段都可以为空。我想制作一个表单,在这里我可以找到至少有一个空字段的所有记录。我使用查询设计器进行了查询,然后将一个连续表单链接到该查询 在表单的详细信息部分,我放置了一个链接到查询的文本框ID,这样我就可以拥有所有至少有一个空字段的ID。到目前为止,一切顺利 我想通知用户,在ID之后,哪些字段是空的。因此,我放置了另一个名为txt的文本框,并制作了一些控件,比如如果isNullMe.Name,那么Me.txt.Value=Name字段为空。

我有一个表id、姓名、姓氏、地址等。。除id之外的所有字段都可以为空。我想制作一个表单,在这里我可以找到至少有一个空字段的所有记录。我使用查询设计器进行了查询,然后将一个连续表单链接到该查询

在表单的详细信息部分,我放置了一个链接到查询的文本框ID,这样我就可以拥有所有至少有一个空字段的ID。到目前为止,一切顺利

我想通知用户,在ID之后,哪些字段是空的。因此,我放置了另一个名为txt的文本框,并制作了一些控件,比如如果isNullMe.Name,那么Me.txt.Value=Name字段为空。它工作得很好,但只适用于第一张唱片。所有其他记录在文本框txt中都有相同的消息

代码是这样的,当然stringW和lngth是声明的

If IsNull(Me.Name.Value) Then
stringW = stringW & " Name field,"
End If
。。。。。姓氏、电话号码等相同

lngth = Len(stringW) - 1
stringW = Left$(stringW, lngth)
Me.txt.Value = stringW
似乎表单加载了我将代码放在加载部分的代码,它创建了一次控件,然后将stringW的内容复制到每个记录的txt文本框中


我该怎么解决呢?我的意思是,如何在连续的形式中有一个文本框来改变它的内容,告知用户该记录的空白字段?

这里的问题是,一个以连续形式显示的窗体上的未绑定文本框将总是为每个记录显示相同的值。可能应用于未绑定文本框的任何VBA操作将仅使用当前记录中的数据

解决方法是在Access中创建一个已保存的查询,计算每条记录的状态,然后根据查询创建表单,并将文本框绑定到计算的[EmptyFields]字段

也就是说,对于[表1]中的样本数据

身份证姓名地址 - --- ---- ----------- 戈德·汤普森大街123号1号 2荷马742长青台酒店 3佛兰德斯 您可以创建这样一个保存的查询

选择 [id], [姓名], [姓],, [地址], MidIIfIsNull[Name]、Name、&IIfIsNull[Name]、Name、&IIfIsNull[Address]、Address、、3作为空字段 来自表1 返回

id姓名姓氏地址空域 - --- ---- ----------- ------- 戈德·汤普森大街123号1号 2荷马742长青台姓 3佛兰德人姓名、地址
您可以使用该查询作为表单的记录源。

这里的问题是,表单上显示为连续表单的未绑定文本框将始终为每个记录显示相同的值。可能应用于未绑定文本框的任何VBA操作将仅使用当前记录中的数据

解决方法是在Access中创建一个已保存的查询,计算每条记录的状态,然后根据查询创建表单,并将文本框绑定到计算的[EmptyFields]字段

也就是说,对于[表1]中的样本数据

身份证姓名地址 - --- ---- ----------- 戈德·汤普森大街123号1号 2荷马742长青台酒店 3佛兰德斯 您可以创建这样一个保存的查询

选择 [id], [姓名], [姓],, [地址], MidIIfIsNull[Name]、Name、&IIfIsNull[Name]、Name、&IIfIsNull[Address]、Address、、3作为空字段 来自表1 返回

id姓名姓氏地址空域 - --- ---- ----------- ------- 戈德·汤普森大街123号1号 2荷马742长青台姓 3佛兰德人姓名、地址
您可以使用该查询作为表单的记录源。

我知道这已经有一年多的历史了,但我也遇到了同样的问题并找到了解决方案

只需编写一个函数来创建所需的字符串,该字符串使用表单中的值。因此,不是:

Me.Name.Value
您可以使用:

Forms!FormName!ControlName.Value

然后简单地将该函数用作未绑定文本框的控制源。您可以通过单击。。。在ControlSource上,选择函数,然后选择模块,然后选择函数本身。非常适合我。

我知道这已经超过一年了,但我也遇到了同样的问题并找到了解决方案

只需编写一个函数来创建所需的字符串,该字符串使用表单中的值。因此,不是:

Me.Name.Value
您可以使用:

Forms!FormName!ControlName.Value

然后简单地将该函数用作未绑定文本框的控制源。您可以通过单击。。。在ControlSource上,选择函数,然后选择模块,然后选择函数本身。非常适合我。

Thx,这个适合我。示例:将以下函数添加到vba模块中,以测试这一点,将以未绑定的形式分别显示每行的字段id值:公共函数测试表单_name
As String As Integer test=Formsform_name.id.Value结束函数。然后,您可以在连续表单中为未绑定字段使用=test[Name]来调用函数。当然,你可以在函数中做任何你想做的事情。Thx,这对我很有用。示例:将以下函数添加到vba模块中,以测试这将以未绑定的形式分别显示每行的字段id值:公共函数testingform_name As String As Integer test=Formsform_name.id.value End function。然后,您可以在连续表单中为未绑定字段使用=test[Name]来调用函数。当然,您可以在函数中执行任何您想要的操作。