Private Sub cmd_Click(Index As Integer) select case index case 0 SqlTxt = "insert into tbjl(编码1,名称1,编码1,名称2,编码2,名称3,编号3,姓名,品种, 标识,数量,标准,金额,费用,发票号,投保序号,备注) " SqlTxt = SqlTxt & "values('" & DwBm & "','" & DwMc & "','" & Cbm & "','" & Cmc & "','" & Zbm & "','" & Zmc & "','" & NewNh & "','" & txtText1(4) & "','麦子','" SqlTxt = SqlTxt & txttext2(0) & "','" & txttext2(1) & "','" & txttext2(2) & "','" & txttext2(3) & "','" & txttext2(4) & "','" & txttext2(5) & "','" & txtPh & "','" & txttext2(6) & "')" ExecuteSQL (SqlTxt) end select end sub第一次增加记录和第二次没有区别 下面为executesql函数 Public Function Connectstring() As String Connectstring = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" & App.Path & "\baoxian_db.mdb" & ";Persist Security Info=False" End FunctionPublic Function ExecuteSQL(ByVal Sql As String) As ADODB.Recordset Dim MyCon As Connection Dim MyRecordset As Recordset
Set MyCon = New Connection MyCon.CursorLocation = adUseClient MyCon.ConnectionString = Connectstring() MyCon.Open
Dim strArray() As String On Error GoTo Exectuesql_error strArray = Split(Sql)
If InStr("INSERT,DELETE,UPDATE", UCase(strArray(0))) Then MyCon.Execute Sql Else Set MyRecordset = New ADODB.Recordset MyRecordset.Open Trim(Sql), MyCon, adOpenKeyset, adLockOptimistic Set ExecuteSQL = MyRecordset End If
exectuesql_exit: Set MyRecordset = Nothing Set MyCon = Nothing Exit Function
Exectuesql_error: MsgBox "查询错误: " & Err.Description Resume exectuesql_exit End Function
select case index
case 0
SqlTxt = "insert into tbjl(编码1,名称1,编码1,名称2,编码2,名称3,编号3,姓名,品种, 标识,数量,标准,金额,费用,发票号,投保序号,备注) "
SqlTxt = SqlTxt & "values('" & DwBm & "','" & DwMc & "','" & Cbm & "','" & Cmc & "','" & Zbm & "','" & Zmc & "','" & NewNh & "','" & txtText1(4) & "','麦子','"
SqlTxt = SqlTxt & txttext2(0) & "','" & txttext2(1) & "','" & txttext2(2) & "','" & txttext2(3) & "','" & txttext2(4) & "','" & txttext2(5) & "','" & txtPh & "','" & txttext2(6) & "')"
ExecuteSQL (SqlTxt)
end select
end sub第一次增加记录和第二次没有区别
下面为executesql函数
Public Function Connectstring() As String
Connectstring = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" & App.Path & "\baoxian_db.mdb" & ";Persist Security Info=False"
End FunctionPublic Function ExecuteSQL(ByVal Sql As String) As ADODB.Recordset
Dim MyCon As Connection
Dim MyRecordset As Recordset
Set MyCon = New Connection
MyCon.CursorLocation = adUseClient
MyCon.ConnectionString = Connectstring()
MyCon.Open
Dim strArray() As String
On Error GoTo Exectuesql_error
strArray = Split(Sql)
If InStr("INSERT,DELETE,UPDATE", UCase(strArray(0))) Then
MyCon.Execute Sql
Else
Set MyRecordset = New ADODB.Recordset
MyRecordset.Open Trim(Sql), MyCon, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = MyRecordset
End If
exectuesql_exit:
Set MyRecordset = Nothing
Set MyCon = Nothing
Exit Function
Exectuesql_error:
MsgBox "查询错误: " & Err.Description
Resume exectuesql_exit
End Function
在 ExecuteSQL (SqlTxt) 前后用 timer()函数计算下没看出有什么问题
不过我想,你的那个ExecuteSQL函数可以改一下,把其中的MyCon也单独做为一个对象返回,这样直接用服务器端游标(不要用MyCon.CursorLocation = adUseClient),可能会快一点吧...
在Set MyRecordset = New ADODB.Recordset
后面加一条
MyRecordset.CursorLocation = adUseClient