【发布时间】:2017-11-17 06:25:52
【问题描述】:
我有一个记录集 TBLSOURCETARGETLINK,我想在更新后事件中更新它。
在添加新记录之前,我还需要确保不存在重复项。 如果记录存在,我只想更新记录并添加新记录。
我正在为 VBA 和如何操作的顺序而苦苦挣扎。
请有人帮忙。
VBA 目前看起来像这样:
Private Sub IsSource_AfterUpdate()
Dim VbaTableID As Integer
Dim VbaSystemID As Integer
Dim VbaFieldID As Integer
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim tabledef As String
Dim strcriteria As String
Dim rstSourceTarget As Recordset
Set rstSourceTarget = CurrentDb.OpenRecordset(Name:="tblsouretargetlink", Type:=RecordsetTypeEnum.dbOpenDynaset)
If IsNull(Me!TableID) Then
Else
VbaTableID = Me!TableID
End If
If IsNull(Me!SystemID) Then
Else
VbaSystemID = Me!SystemID
End If
If IsNull(Me!FieldID) Then
Else
Vbafield = Me!FieldID
End If
strcriteria = "[systemid] = '" & Me.SystemID & "' And [tableid] = " & Me.TableID And [FieldID] = " & Me.fieldid"
rs.FindFirst strcriteria
If .NoMatch Then
With rstSourceTarget
.AddNew
![SystemID] = VbaSystemID
![SourceTable] = VbaTableID
![SourceField] = VbaFieldID
.Update
End With
Else
With rstSourceTarget
.Edit
![IsSource] = -1
.Update
End If
End Sub
谢谢
【问题讨论】:
-
在标准中你有错误的引用,最后一个
With没有关闭End With。你的代码有什么样的问题?如果你解决了这两个问题,它应该可以工作。 -
什么是
rs记录集?没有声明也没有打开 -
VbaField 未声明
-
在 .Nomatch 我得到 INVALID 或 UNQUALIFIED 参考(没有错误号)