访问VBA以更新表记录
我试图将代码分配给MS Access中的一个按钮,该按钮将更新表记录。单击按钮时,我希望它引用附近列表框List26中用户更新的项目编号,在表资产中查找匹配的项目编号字段,并将该记录上的字段所有者更改为空 我一直在深入研究,发现DAO记录集有一些逻辑,但我对VBA不够熟悉,无法正确设置它,也不知道这是否是正确的路径。以下是我到目前为止的收获:访问VBA以更新表记录,vba,ms-access,button,Vba,Ms Access,Button,我试图将代码分配给MS Access中的一个按钮,该按钮将更新表记录。单击按钮时,我希望它引用附近列表框List26中用户更新的项目编号,在表资产中查找匹配的项目编号字段,并将该记录上的字段所有者更改为空 我一直在深入研究,发现DAO记录集有一些逻辑,但我对VBA不够熟悉,无法正确设置它,也不知道这是否是正确的路径。以下是我到目前为止的收获: Private Sub Check_In_Device_Click() Dim rec As DAO.Recordset 'Table1 cal
Private Sub Check_In_Device_Click()
Dim rec As DAO.Recordset
'Table1 called "Assets"
Set rec = CurrentDb.OpenRecordset("SELECT * FROM Assets")
'if the data in List26 matches an Item# in Asset table...
If [Item].value = [List26].value Then
rec.MoveFirst
rec.Edit
'change Owner field to null
rec![Owner].value = ""
rec.Update
rec.Close
End If
End Sub
OpenRecordset获取表/查询名称和类型,您需要以dbOpenDynaset的形式打开才能使用.findfirst
确保使用绑定列属性将listbox设置为返回正确的值。默认值可能是记录的唯一键
像这样的东西应该可以做到:
Private Sub Check_In_Device_Click()
Dim rec As DAO.Recordset
Set rec = CurrentDb.OpenRecordset("Assets", dbOpenDynaset)
With rec
.FindFirst "[Item] Like '" & List26.Value & "'"
.Edit
![Owner] = ""
.Update
.Close
End With
End Sub
如果要循环遍历整个记录集,可以使用:
Dim rec As DAO.Recordset
Set rec = CurrentDb.OpenRecordset("Assets", dbOpenDynaset)
With rec
.MoveFirst
Do Until .EOF
If ![Item] Like List26.Value Then
.Edit
![Owner].value = Null
.Update
End If
.MoveNext
Loop
.Close
End With
OpenRecordset获取表/查询名称和类型,您需要以dbOpenDynaset的形式打开才能使用.findfirst
确保使用绑定列属性将listbox设置为返回正确的值。默认值可能是记录的唯一键
像这样的东西应该可以做到:
Private Sub Check_In_Device_Click()
Dim rec As DAO.Recordset
Set rec = CurrentDb.OpenRecordset("Assets", dbOpenDynaset)
With rec
.FindFirst "[Item] Like '" & List26.Value & "'"
.Edit
![Owner] = ""
.Update
.Close
End With
End Sub
如果要循环遍历整个记录集,可以使用:
Dim rec As DAO.Recordset
Set rec = CurrentDb.OpenRecordset("Assets", dbOpenDynaset)
With rec
.MoveFirst
Do Until .EOF
If ![Item] Like List26.Value Then
.Edit
![Owner].value = Null
.Update
End If
.MoveNext
Loop
.Close
End With
项可能是数字,请使用Null清空字段,因此请尝试:
专用子签入设备\u单击
作为DAO.Recordset的Dim rec
“表1称为资产
Set rec=CurrentDb.OpenRecordsetSELECT*FROM Assets
如果rec.RecordCount>0,则
'如果列表26中的数据与资产表中的项目匹配。。。
记录移动优先
rec.FindFirst Item='&我!清单26.价值&'
如果不是rec.NoMatch,则
'已找到项目。
记录编辑
'将所有者字段更改为空
记录!Owner.Value=Null
记录更新
如果结束
如果结束
记录结束
端接头
项可能是数字,请使用Null清空字段,因此请尝试:
专用子签入设备\u单击
作为DAO.Recordset的Dim rec
“表1称为资产
Set rec=CurrentDb.OpenRecordsetSELECT*FROM Assets
如果rec.RecordCount>0,则
'如果列表26中的数据与资产表中的项目匹配。。。
记录移动优先
rec.FindFirst Item='&我!清单26.价值&'
如果不是rec.NoMatch,则
'已找到项目。
记录编辑
'将所有者字段更改为空
记录!Owner.Value=Null
记录更新
如果结束
如果结束
记录结束
端接头
非常感谢。这将它清理了很多,并且在调试时给了我更好的响应。最终还是得到了一个针对的数据对话错误![Owner]字段,但切换为NULL,现在就可以开始了。谢谢!这将它清理了很多,并且在调试时给了我更好的响应。最终还是得到了一个针对的数据对话错误![Owner]字段,但切换为NULL,现在就可以开始了。谢谢!Item字段设置为text still,但使用NULL使其通过。确定,更改了该设置。那么答案是?谢谢!Item字段设置为text still,但使用NULL使其通过。确定,更改了该设置。那么答案是?