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标记属性-如何识别其更新和插入操作?_Ms Access_Vba - Fatal编程技术网

Ms access MS Access标记属性-如何识别其更新和插入操作?

Ms access MS Access标记属性-如何识别其更新和插入操作?,ms-access,vba,Ms Access,Vba,我试图在MS Access窗体上创建添加、更新、删除操作。我在internet上找到了这段代码,插入和更新在同一个按钮上进行。我不知道下面这行到底发生了什么,也不知道它是如何识别它以进行更新或插入的 未获取以下行:=Me.txtid.Tag&“” 请查找以下代码,该代码根据要求完美运行 “当我们单击“添加”按钮时,有两个选项 '1. for insert '2. for update If Me.txtid.Tag & "" = "" Then ' this is for in

我试图在MS Access窗体上创建添加、更新、删除操作。我在internet上找到了这段代码,插入和更新在同一个按钮上进行。我不知道下面这行到底发生了什么,也不知道它是如何识别它以进行更新或插入的

未获取以下行:=Me.txtid.Tag&“”

请查找以下代码,该代码根据要求完美运行

“当我们单击“添加”按钮时,有两个选项

'1. for insert
'2. for update

If Me.txtid.Tag & "" = "" Then
    ' this is for insert new
    ' add data in table

CurrentDb.Execute "insert into student(stdid,stdname,gender,phone,address)" & _
    " values(" & Me.txtid & ",' " & Me.txtname & " ',' " & Me.cmbgender & " ','" & _
     Me.txtphone & "', '" & Me.txtaddress & "')"
 'refresh data in list on form
subform_student.Form.Requery
否则


如果

忘记/删除所有这些代码,则结束,并将表单绑定到表Student以使所有这些自动发生

如果您不熟悉绑定表单,请浏览“从Microsoft Access开始”等教程。

是VBA/VB6中每个表单和控件对象的通用字符串属性。它为开发者提供了一个“放置东西”的地方,以支持其应用程序的操作

从中复制样本的原始代码必须在加载记录时向
Me.txtid.Tag
写入一个值(例如,可能在表单的
Current
事件中),以指示记录是现有记录还是新记录(empty=“new”,non empty=“existing”)。线路

如果Me.txtid.Tag&=“=”,则
只需检查
.Tag
属性是否为空,然后执行相应的插入或更新

顺便说一句,关于:

以下代码按照要求完美运行

不,没有。尝试在[stdname]为
Tam O'Shanter
的位置添加一条记录,然后亲自查看。您应该抛弃动态SQL并使用以下方法之一

  • 一种绑定形式(如古斯塔夫所言)
  • 参数化查询,或
  • 记录集更新

您能否详细说明您对Me.txtid.Tag&=“=”代码行的回答?请参阅Gord的答案。答案完全令人信服。感谢您的回复:)
CurrentDb.Execute "UPDATE student " & _
    " set stdid = " & Me.txtid & _
    ", stdname = '" & Me.txtname & "' " & _
    ", gender = '" & Me.cmbgender & " ' " & _
    ", phone = ' " & Me.txtphone & " ' " & _
    ", address = ' " & Me.txtphone & " ' " & _
    " WHERE stdid = " & Me.txtid.Tag