Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
使用事务(excel)大规模更新DAO记录集_Excel_Vba_Transactions_Dao_Recordset - Fatal编程技术网

使用事务(excel)大规模更新DAO记录集

使用事务(excel)大规模更新DAO记录集,excel,vba,transactions,dao,recordset,Excel,Vba,Transactions,Dao,Recordset,我正在尝试从使用VBA的Excel表单启动的DAO事务中批量导出记录到Access表,但当我在下面的代码中点击“提交”时,没有导出任何内容,它必须关闭,但我不明白为什么我的事务为空?如果我将ws.committrans移动到启动事务的同一个按钮单击事件,那么一切正常,但这是一次更新,我希望使用事务一次更新多个记录 Public db As DAO.Database Public rs As DAO.Recordset Public ws As DAO.Workspace Public Sub

我正在尝试从使用VBA的Excel表单启动的DAO事务中批量导出记录到Access表,但当我在下面的代码中点击“提交”时,没有导出任何内容,它必须关闭,但我不明白为什么我的事务为空?如果我将ws.committrans移动到启动事务的同一个按钮单击事件,那么一切正常,但这是一次更新,我希望使用事务一次更新多个记录

Public db As DAO.Database
Public rs As DAO.Recordset
Public ws As DAO.Workspace

Public Sub CommandButton1_Click()
Dim val1 As String
Dim val2 As String
Dim val3 As String
Dim val4 As String
Dim val5 As String
Dim val6 As String

Set ws = DBEngine(0)
Set db = ws.OpenDatabase("Database8")
Set rs = db.OpenRecordset("test")



val1 = Me.TextBox1.Value
val2 = Me.TextBox2.Value
val3 = Me.TextBox3.Value
val4 = Me.TextBox4.Value
val5 = Me.TextBox5.Value
val6 = Me.TextBox6.Value

ws.BeginTrans

With rs
.AddNew
!col1 = val1
!col2 = val2
!col3 = val3
!col4 = val4
!col5 = val5
!col6 = val6
.Update
End With


Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox6.Value = ""




End Sub

Private Sub CommandButton2_Click()

ws.CommitTrans

End Sub

更改代码以在用户窗体激活时启动事务,并在提交按钮按下时完成事务。单击“现在就像做梦一样工作。

您能在
行结束之前写入
。执行
?(这里只是猜测)-我遇到的另一个问题是将事务提交绑定到工作簿保存事件,而不是表单按钮单击事件。通过将代码移出表单本身并创建具有可调用函数的模块,我能够实现这一点