注册 登录
编程论坛 VB6论坛

做了个登录框 无法识别数据库存 求解

我好学习 发布于 2013-09-20 16:11, 506 次点击
只有本站会员才能查看附件,请 登录
我做了张数据库的表,不知错在那里,请指教,我做了一个带登录框,有用户名和密码要用到这个数据库,总是提示:“不可识别的数据库格式”。请教高手我错在那儿?
5 回复
#2
我好学习2013-09-20 16:49
Private Sub Command1_Click()
Dim sql As String
Dim conn As New ADODB.Connection
Dim rs_login As New ADODB.Recordset
If Trim(Text1.Text) = "" Then               '检测用户名正确与否
    MsgBox "用户名不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"
    Text1.SetFocus
Else
    sql = "select * from Test where test_info  = '" & Text1.Text & "'"
    rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic
    If rs_login.EOF = True Then
        MsgBox "用户名不存在,请重新输入!", vbOKOnly + vbExclamation, "错误"
        Text1 = ""
        Text1.SetFocus
    Else                                        '检测密码正确与否
        If Trim(rs_login.Fields(1)) = Trim(Text2) Then
            rs_login.Close
            Unload Me
            Form2.Show
        Else
            MsgBox "密码错误,请重新输入!", vbOKOnly + vbExclamation, "错误"
            Text2.SetFocus
        End If
    End If
End If
End Sub


Private Sub Command2_Click()
    MsgBox "您已成功退出!", vbOKOnly + vbExclamation, "提示"
    Unload Me
End Sub


Private Sub Form_Load()         '此段代码的主要作用是当窗体打开时就连接数据库
Dim conn As New ADODB.Connection
Dim connectionstring As String
connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "E:\Test.mdb;Persist Security Info=False"          '将Data Source 处的路径改为你本机数据库所在路径即可
conn.Open connectionstring
End Sub

这是我做的登录框代码
#3
lowxiong2013-09-20 20:30
你的connection没有定义为全程变量,只在form_load连接数据库,到command中连接就失效了。改成如下代码试试

Dim conn As New ADODB.Connection
Private Sub Command1_Click()
Dim sql As String
Dim rs_login As New ADODB.Recordset
If Trim(Text1.Text) = "" Then               '检测用户名正确与否
    MsgBox "用户名不能为空,请重新输入!", vbOKOnly + vbExclamation, "错误"
    Text1.SetFocus
Else
    sql = "select * from Test where test_info  = '" & Text1.Text & "'"
    rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic
    If rs_login.EOF = True Then
        MsgBox "用户名不存在,请重新输入!", vbOKOnly + vbExclamation, "错误"
        Text1 = ""
        Text1.SetFocus
    Else                                        '检测密码正确与否
        If Trim(rs_login.Fields(1)) = Trim(Text2) Then
            rs_login.Close
            Unload Me
            Form2.Show
        Else
            MsgBox "密码错误,请重新输入!", vbOKOnly + vbExclamation, "错误"
            Text2.SetFocus
        End If
    End If
End If
End Sub


Private Sub Command2_Click()
    MsgBox "您已成功退出!", vbOKOnly + vbExclamation, "提示"
    Unload Me
End Sub


Private Sub Form_Load()         '此段代码的主要作用是当窗体打开时就连接数据库
Dim connectionstring As String
connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "E:\Test.mdb;Persist Security Info=False"          '将Data Source 处的路径改为你本机数据库所在路径即可
conn.Open connectionstring
End Sub

#4
chen35232013-09-20 20:39
我的登录系统是:
Private Sub Command1_Click()
  ComIn
End Sub

Private Sub Command2_Click()
  End
End Sub

Private Sub Form_Activate()
  Dim s As String
  s = App.Path & "\evaluation.mdb"
   Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source =" + Chr(34) + s + Chr(34) & ";Persist Security Info=False" '打开数据库
  = adCmdTable
 Adodc1.RecordSource = "登录表"
 Adodc1.Refresh
 Text1.SetFocus
End Sub

Private Sub Form_Load()
  Label1.Caption = "欢迎使用土地评估登记系统!"
  Frm_in.Width = 6500
  Frm_in.Height = 4500
  Frm_in.Top = (Screen.Height - Frm_in.Height) / 4
  Frm_in.Left = (Screen.Width - Frm_in.Width) / 2
  Text1.Text = ""
  Label3.Caption = "作者:陈**  电话 137**"
  Label3.Enabled = False
  Text2.Visible = False
  Adodc1.Visible = False
  Text1.PasswordChar = "*"
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then ComIn
End Sub

Public Sub ComIn()
  User_Entry = Text2.Text
Dim i As Integer
Static n As Integer    '静态变量用于统计登录次数
  If Text1.Text = User_Entry Then
      Unload Frm_in        '关闭系统登录
  MDIForm1.task.Enabled = True
  MDIForm1.gathering.Enabled = True
  MDIForm1.query.Enabled = True
  MDIForm1.production.Enabled = True
  MDIForm1.Delete.Enabled = False
  MDIForm1.Join.Enabled = False
  MDIForm1.eData.Enabled = True
  
  
  task_num = 1
  gathering_num = 1
  query_num = 1
  production_num = 1
  delete_num = 0
  join_num = 0
  edata_num = 1
  
  ElseIf Text1.Text = User_Entry + 1 Then
      Unload Frm_in        '关闭系统登录
  MDIForm1.task.Enabled = True
  MDIForm1.gathering.Enabled = True
  MDIForm1.query.Enabled = True
  MDIForm1.production.Enabled = True
  MDIForm1.Delete.Enabled = True
  MDIForm1.Join.Enabled = True
  MDIForm1.eData.Enabled = True
  
  task_num = 1
  gathering_num = 1
  query_num = 1
  production_num = 1
  delete_num = 1
  join_num = 1
  edata_num = 1
  Else
    n = n + 1
    If n < 3 Then
       i = MsgBox("登录密码错误,请重新输入!", vbCritical + vbRetryCancel + vbDefaultButton1, "登录失败")
       If i = vbRetry Then
          Text1.Text = ""
          Text1.SetFocus
       Else
          End
       End If
    Else
      End
    End If
  End If
End Sub
#5
我好学习2013-09-21 09:06
还有应该是我做的数据库表不对,应该怎么做好?
#6
bczgvip2013-09-21 18:56
test.accdb 可以的话,请改为这个。还有,自己转个03版是数据库吧!
1