这是两个执行函数,本来在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