请教高手vb+accecc转为VB+SQL要怎写代码?
请看一看下下面代码有没有问题:
Private Sub CmdLogin_Click()
Dim StrSQL As String
UserName = CStr(Trim(TxtUserName.Text))       '//将文本框内的值赋给定义好的全局变量
PassWord = CStr(Trim(TxtPassword.Text))
If UserName <> Empty And PassWord <> Empty Then     '//用户名与密码是否为空
    StrSQL = "select 用户名称,用户口令,用户权限 from 管理用户 where 用户名称= '" & UserName & "'and 用户口令 ='" & PassWord & "'"
    If RsLoginCheck.State = adStateClosed Then
        RsLoginCheck.Open StrSQL, DBCON, adOpenKeyset, adLockPessimistic, adCmdText   '//打开记录集
    End If
    Group = RsLoginCheck.Fields(2).Value
    If RsLoginCheck.Fields(2).Value <> "Administrators" Then
        Call CheckLogin
    End If
    If RsLoginCheck.RecordCount <> 0 Then   '//判断记录集记录条数是否为0
        RsLoginCheck.Close
        Unload Me
        Frmmdimain.Show         '//显示主窗
        FrmDay.Show vbModal
    
    ElseIf Counts < 2 Then
        MsgBox "用户名称密码错误", vbExclamation + vbOKOnly, "登录失败"
        RsLoginCheck.Close        '//关闭记录集
        Counts = Counts + 1    Else
        MsgBox "密码错误不得超过三次,否则视您为非法用户!", vbCritical, "警告"
        End
    End If
Else
    MsgBox "用户名密码不能为空", vbExclamation + vbOKOnly, "登录失败"
    Call Form_Load
End If
End Sub在accecc里通过.连sql server不通过,报错
   "Group = RsLoginCheck.Fields(2).Value
    If RsLoginCheck.Fields(2).Value <> "Administrators" Then
        Call CheckLogin
    End If"

解决方案 »

  1.   

    RsLoginCheck.Open StrSQL, DBCON, adOpenKeyset, adLockPessimistic, adCmdText   改变ODBC设定
      

  2.   

    连sql server不通过,报错
    -------------------------------
    问题出在DBCON上,你的DBCON是怎么赋值的,贴出来看看
      

  3.   

    Public DBCON As New ADODB.ConnectionDBCON.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DateBase;Data Source=03TJ11"
      

  4.   

    Public Cnn As ADODB.Connection
    Public ServerName As String
    '服务器名
    Public DBname As String
    '数据库名
    Public UserName As String
    '用户名
    Public PassWord As String
    '密码我把我常用的模块代码给你,你注意ConnectionString,access和SQL是不一样的,你自己检查修改一下吧.
    Public Function IniDB() As Boolean
        '初始化连接函数
        On Error GoTo MyErr
        IniDB = False
        Set Cnn = New ADODB.Connection
        With Cnn
            .ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & UserName & ";PWD=" & PassWord & ";Initial Catalog=" & DBname & ";Data Source=" & ServerName
            '连接字符串
            .CommandTimeout = 10
            '连接等待时间
            .CursorLocation = adUseClient
            '游标类型
            .Open
        End With
        IniDB = True
        Exit Function
    MyErr:
        MyErr
    End Function
    Public Sub MyErr()
        MsgBox "错误号:" & Err.Number & vbCrLf & "错误源:" & Err.Source & vbCrLf & "错误描述:" & Err.Description, vbCritical, "对不起,出现错误!"
        Err.Clear
    End Sub
    Public Sub DBclose()
        '断开连接
        If Cnn.State = adStateOpen Then Cnn.Close
    End Sub
    Public Sub FillData(rs As ADODB.Recordset, Grid As MSHFlexGrid)
        '导入数据过程
        On Error GoTo myerr2
        Dim i As Integer
        Dim j As Integer
        With Grid
            .Clear
            .rows = 2
            .Cols = rs.Fields.Count
            For i = 0 To .Cols - 1
                .textmatrix(0, i) = rs.Fields(i).Name
                '将矩阵的第一行设置为表字段名
            Next i
            If rs.RecordCount > 0 Then
                .rows = rs.RecordCount + 1
                i = 1
                rs.MoveFirst
                Do Until rs.EOF
                '直到rs至结果集末尾退出循环
                    For j = 0 To rs.Fields.Count - 1
                        .textmatrix(i, j) = rs.Fields(j).Value & ""
                        '将表中的记录导入grid
                    Next j
                    rs.MoveNext
                    i = i + 1
                Loop
            End If
            .ColSel = .Cols - 1
            '设置起始列
        End With
        Exit Sub
    myerr2:
        MyErr
    End Sub