解决:如何正确完成DAO vba的访问数据库事务?
问题描述:
我正在使用DAO recorsets,基本的想法是用给定参数指示(限制)多次填充记录的一个表。解决:如何正确完成DAO vba的访问数据库事务?
它似乎工作,但突然当我想再次使用窗体时,它会抛出3022错误。当我看到表值时,它们都没有被复制。我从该表中删除所有记录并刷新表格和表格。在我刷新表格之前,表格不显示任何值。显示的唯一值是我尝试在数据库中保存的最后一个值。
这里的代码一点点:
Private Sub add_element(loops_number As Double)
i = 1
While (i < CDbl(loops_number))
function
i = i + 1
Wend
End Sub
这是工作显然罚款。
Private Sub populate()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim last As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("Element", dbOpenTable)
Set last = rst.Clone
With rst
.AddNew
If (last.RecordCount <= 0) Then
'here I pass input form values to recordset fields ,because its the first row
last.Close
.Update
.Close
Else
last.MoveLast
!Pk = Custom_pk 'Custom_pk is obtained with a function --- not relevant
'here I pass remain values from last record to a new one --- because records has the same attributes
last.Close
.Update
.Close
End If
Set rst = Nothing
Set ultimo = Nothing
End With
End Sub
这就像上次记录值在功能完成后保持“活动”状态。我不明白为什么会发生这种情况。
元件pk是字母数字例如:“A1”,然后我建立一个函数,将A与1分开,将+1加到数字上并重新连接数值,因此结果为“A2”
答
我使用自动编号字段作为主键来解析它, PK(字母数字)作为一个共同的领域,那么我可以完全像我想要的那样维护我的vba代码。