Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 文本框值仅显示表的第一条记录_Ms Access_Vba - Fatal编程技术网

Ms access 文本框值仅显示表的第一条记录

Ms access 文本框值仅显示表的第一条记录,ms-access,vba,Ms Access,Vba,在MS Access连续表单中,我有两个文本框,TextBox1和TextBox2。在TextBox1中,我从数据库的表字段中获取值,在TextBox2中,我想显示第一个textbox的值,我想使用VBA程序来实现 我目前正在做的,在表单加载中 Private Sub Form_Load() Dim val As String val = Me.TextBox1 TextBox2.Value = val End Sub 但这只显示所有TextBox2值中TextBox1值的第一个元素。Tex

在MS Access连续表单中,我有两个文本框,TextBox1和TextBox2。在TextBox1中,我从数据库的表字段中获取值,在TextBox2中,我想显示第一个textbox的值,我想使用VBA程序来实现

我目前正在做的,在表单加载中

Private Sub Form_Load()
Dim val As String
val = Me.TextBox1 
TextBox2.Value = val
End Sub
但这只显示所有TextBox2值中TextBox1值的第一个元素。TextBox2值不随TextBox1值的更改而更改

例如,当前我的输出如下

TextBox1  TextBox2
Tom       Tom
Tommy     Tom
Sam       Tom
Sammy     Tom
TextBox1  TextBox2
Tom       Tom
Tommy     Tommy
Sam       Sam
Sammy     Sammy
但是我想要这样的输出

TextBox1  TextBox2
Tom       Tom
Tommy     Tom
Sam       Tom
Sammy     Tom
TextBox1  TextBox2
Tom       Tom
Tommy     Tommy
Sam       Sam
Sammy     Sammy
也就是说,我想获取TextBox1的值,并将其动态地放入TextBox2中,我想使用代码生成器来实现


我想用vba代码来做。因为我必须对TextBox1的值进行大量计算,然后在TextBox2中显示结果。我如何才能做到这一点?

将其放入textbox1的更改事件中:

me.textbox2.value = me.textbox1.value
这可能就是将box2设置为与box1相同所需的全部内容

请注意,表单加载事件只会触发一次(当表单首次加载时),每次文本框更改时,都会触发更改事件。在调试模式下,您可以放置断点,然后您将知道事件何时触发,也就是说,如果您不知道的话。

听起来TextBox2是一个未绑定的文本框(其控制源为空)。因此,连续表单显示该文本框的多个副本,所有副本都具有相同的值。更改其值时,新值将显示在所有副本中

由于您明确表示不希望TextBox2包含与TextBox1相同的值(不管您在问题中提出了什么要求),请使用TextBox2控制源应用您的计算。它可以是一个基于TextBox1值计算结果的表达式。或者,您可以创建一个自定义VBA函数来进行计算,并将该函数应用于TextBox1的值:

=圆形([TextBox1]/100,2)
=YourCustomFunction([TextBox1])

如果TextBox2显示的是TextBox1的精确副本,最简单的方法是用与TextBox2相同的方式绑定它-使用相同的控制源。

现在我在TextBox2中根本没有得到值。我在更新事件后也尝试过,但不起作用。@OP HansUps的回答听起来像是一个更精简的回答。我想用vba代码来做,但不是这样。因为我必须对TextBox1的值进行大量计算,然后在TextBox2中显示结果。在TextBox2的控制源中,我写了“=YourCustomFunction([TextBox1])”并写了一个函数“Private Sub YourCustomFunction(val As String)Me.TreoRank=val End Sub”,但这不起作用告诉我们“不起作用”是没有帮助的。如果您向我们详细说明“不工作”的确切含义,我们可能会提供帮助。请转到即时窗口(Ctrl+g将带您前往)。粘贴
?将自定义函数(“Tom”)
插入新行,然后按Enter键。(如果“Tom”不是一个实际值,请替换一些实际值。)会发生什么情况?它会给出“编译器错误:子或函数未定义”我想使用vba代码来完成,但不是这样。因为我必须对TextBox1的值进行大量计算,然后在TextBox2中显示结果。