Private Sub Form_Activate()
  Set mydb = Workspaces(0).OpenDatabase(App.Path & "\db1.mdb") '打开数据库
  SQL = "select 用户名 from 用户"
  Set myrs = mydb.OpenRecordset(SQL)
  If myrs.EOF = False Then myrs.MoveLast
  If myrs.BOF = False Then myrs.MoveFirst  For i = 0 To myrs.RecordCount - 1
      Combo1.AddItem (myrs.Fields(0))
      myrs.MoveNext
  Next i  If Combo1.ListCount > 0 Then Combo1.ListIndex = 0
  myrs.Close
  mydb.Close
  Combo1.SetFocus
End SubPrivate Sub Command1_Click()              '确认操作员和密码
  Dim MESSAGE As String
  If Combo1.Text <> "" Then
     Set mydb = Workspaces(0).OpenDatabase(App.Path & "\db1.mdb")
     Set myrs = mydb.OpenRecordset("用户", dbOpenDynaset)
     myrs.FindFirst "用户名 = " + Chr(34) + Combo1.Text + Chr(34) + ""   ' 查找操作员
     
     If myrs.NoMatch Then                                     '没查到记录
        MsgBox "无此操作员!", vbOKOnly + vbExclamation, "提示"
     Else
        If Form2.Text1.Text = myrs.Fields("密码") Then '确认密码
           c = Form2.Combo1.Text
           Form2.Caption = "用户名,密码正确请稍等......"
           Unload Me
           Form1.Show
        Else
           MsgBox "密码错误,请重新输入密码!", vbOKOnly + vbExclamation, "提示"
           Text1.SetFocus
        End If
     End If
  End If
End SubPrivate Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)  '回车换行
  If KeyCode = vbKeyReturn Then
     Text1.SetFocus
  End If
End SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = vbKeyReturn Then
     Command1.Visible = True
     Command1.SetFocus
  End If
  If KeyCode = vbKeyDown Then
     Command1.Visible = True
     Command1.SetFocus
  End If
  If KeyCode = vbKeyUp Then
     Combo1.SetFocus
  End If
End SubPrivate Sub Command2_Click()
  Unload Me
End SubPrivate Sub 修改管理员密码_Click()
  Form3.Show
End Sub
我写的代码为什么,数据库密码设置为空,在用户界面上密码框中设置为空时,单击登录按钮却会弹出密码错误的消息框呢,怎么样实现密码为空的登录呢?

解决方案 »

  1.   

    跟踪一下,看看数据库密码清空以后myrs.Fields("密码")到底得到的是什么
      

  2.   

    值为null
    应该怎么写才能解决这个问题呢
      

  3.   

    If Form2.Text1.Text = myrs.Fields("密码") Then '确认密
    ===========================================================
    If Form2.Text1.Text = myrs.Fields("密码").value Then '确认密还有看看数据库是否真的为空,或许有小的失误呢
    呵呵
      

  4.   

    改变判断条件if Form2.Text1.Text = myrs.Fields("密码") or (IsNull(myrs.Fields("密码")) and Form2.Text1.Text = "" ) then
      

  5.   

    If myrs.NoMatch Then                                     '没查到记录
            MsgBox "无此操作员!", vbOKOnly + vbExclamation, "提示"
         Else
            If Form2.Text1.Text = myrs.Fields("密码") OR MYRS.FIELDS("密码")=VBNULLSTRING Then '确认密码 ''更改的地方
               c = Form2.Combo1.Text
               Form2.Caption = "用户名,密码正确请稍等......"
               Unload Me
               Form1.Show
            Else
               MsgBox "密码错误,请重新输入密码!", vbOKOnly + vbExclamation, "提示"
               Text1.SetFocus
            End If
         End If
      End If
    End Sub
      

  6.   

    if myrs.Fields("密码")=vbNullString then '密码为Null