解决:如何正确完成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代码。