Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
Vba 肮脏的命令?_Vba_Ms Access - Fatal编程技术网

Vba 肮脏的命令?

Vba 肮脏的命令?,vba,ms-access,Vba,Ms Access,我有一个Access 2010应用程序,它有一个带有文本框和命令按钮的表单。单击命令按钮将在文本框中放置默认值 问题:当用户单击命令按钮时,我可以: 运行SQL更新以将新文本框值保存在绑定到的数据源中,并将me.textbox1.value设置为其新值,或 运行相同的SQL更新将新文本框值保存在绑定到的数据源中,并执行表单。重新查询 哪个更好?更改数据源中的绑定值是否会引发当前事件和自动重新查询 提前感谢。如果您想立即保存条目,我会将值写入文本框,然后执行以下操作 Me.Dirty = Fals

我有一个Access 2010应用程序,它有一个带有文本框和命令按钮的表单。单击命令按钮将在文本框中放置默认值

问题:当用户单击命令按钮时,我可以:

  • 运行SQL更新以将新文本框值保存在绑定到的数据源中,并将
    me.textbox1.value
    设置为其新值,或
  • 运行相同的SQL更新将新文本框值保存在绑定到的数据源中,并执行
    表单。重新查询
  • 哪个更好?更改数据源中的绑定值是否会引发当前事件和自动重新查询


    提前感谢。

    如果您想立即保存条目,我会将值写入文本框,然后执行以下操作

    Me.Dirty = False
    
    以绑定形式保存记录

    我认为通过SQL这样做没有任何意义

    更改数据源中的绑定值是否会引发当前事件和自动重新查询

    不,那实际上是最糟糕的方法。表单不知道更改的数据源,一旦用户开始编辑,就会收到“写入冲突”消息


    你的1。也会有同样的问题。

    嗨,安德烈,谢谢你的评论。因此,在命令按钮的单击事件中设置me.textbox1.value和me.dirty=false会产生将新文本框值保存到其各自数据源的效果,从而使SQL更新毫无意义,因为表中的数据已经更改(假设me.dirty=false出现在SQL之前的VBA中)?塔菲:没错。您只需在第二个窗口中打开表,然后在执行代码后按Shift+F9即可尝试执行。