这是两个执行函数,本来在access中使用没有问题,但换个mssql中就有问题
Public Sub SQLExt(SQLStr As String)
Dim cmd As New ADODB.Command
Connect
Set cmd.ActiveConnection = conn
cmd.CommandText = SQLStr
cmd.Execute
Set cmd = Nothing
Disconnect
End Sub
Public Function QueryExt(ByVal SQLStr As String) As ADODB.Recordset
Dim rs As New ADODB.Recordset
Connect
Set rs.ActiveConnection = conn
rs.CursorType = 1
rs.LockType = 3
rs.Open SQLStr
Set QueryExt = rs
End Function
关键点是,上面的两个值ACESS中下面两段语句没问题
rs.CursorType = 1
rs.LockType = 3
但是换到MSSQL中就Private Sub Form_Load()中Combo1就没有赋值
rs.LockType=1,2,3都试了,没有全部运行正常的,当rs.LockType=1,Private Sub Form_Load()中Combo1正常,但下面第一个更新语句就有问题程序其中有这么个语句,
Set rs = QueryExt("select * from " & PartName & "_CMM_Info where Measure_ID='" & MeasureID & "'")
rs.Fields("FunDim_Pass_Rate") = FPR
rs.Fields("FunDim_Pass_Num") = b
rs.Fields("FunDim_Pass_Con") = c
rs.Fields("FunDim_Pass_No") = a
rs.Fields("GenDim_Pass_Rate") = GPR
rs.Fields("GenDim_Pass_Num") = f
rs.Fields("GenDim_Pass_Con") = g
rs.Fields("GenDim_Pass_No") = e
rs.UpdateBatch
rs.ClosePrivate Sub Form_Load()
Dim i As Long
Dim n As Long
Me.Icon = frmMain.Icon
Set rs = New ADODB.Recordset
SQLStr = "select * from VehicleAssembly"
Set rs = QueryExt(SQLStr)
If Not rs.EOF Then
n = rs.RecordCount
For i = 0 To n - 1
Combo1.AddItem rs.Fields("Name_CN")
rs.MoveNext
Next
End If
rs.Close
Set rs = Nothing
Label4.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货