你的编程基础还不够扎实,随便写了一个,应该是你需要的,你看看,希望对你有点帮助。
我认为如果是多窗体的数据库编程,使用模块比较合理,这样省去了在各个窗体都需要编写数据库连接的代码,另外各窗体间需要的数据可以在模块中定义,在窗体直接调用即可。
添加一个模块Module1,模块中编写数据库连接代码,定义窗体间调用的数据变量:
程序代码:
FORM1窗体的程序:
程序代码:
Form2窗体的代码:
程序代码:
由于你的数据库结构不清楚,没有调试,估计应该问题不大。
我认为如果是多窗体的数据库编程,使用模块比较合理,这样省去了在各个窗体都需要编写数据库连接的代码,另外各窗体间需要的数据可以在模块中定义,在窗体直接调用即可。
添加一个模块Module1,模块中编写数据库连接代码,定义窗体间调用的数据变量:
程序代码:Public conn As New ADODB.Connection, RS As New ADODB.Recordset Public Uname As String, Pclass As String Sub KKK(conn) conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False" End Sub
FORM1窗体的程序:
程序代码:Dim J As Integer
Private Sub Command1_Click()
Dim ZFC As String '过程级变量
If Text1.Text = "" Then '检测用户是否输入用户名
MsgBox "你没有输入用户名,请输入!"
Exit Sub '如果没有输入,退出当前过程,等待用户输入
End If
If Text2.Text = "" Then '检测用户是否输入用户密码
MsgBox "你没有输入用户密码,请输入!"
Exit Sub '如果没有输入,退出当前过程,等待用户输入
End If
Call KKK(conn) '调用模块中的数据库连接
RS.Open "Select * From admin Where username='" & Text1.Text & "'", conn, 2, 2
If Not RS.EOF Then '首先检测用户名是否正确
If RS!password = Text2.Text Then '再检测用户密码是否正确
Uname = RS!Name '取出用户名称存储在模块级变量Uname中
Pclass = RS!Class '取出用户权限存储在模块级变量Pclass中
ZFC = "登录成功"
Else '如果用户密码不正确
ZFC = "密码不正确"
J = J + 1
End If
Else '如果用户名不正确
ZFC = "用户名不正确"
J = J + 1
End If
RS.Close
Set RS = Nothing
conn.Close
Set conn = Nothing
If J >= 3 Then
MsgBox "你已经连续三次登录不成功,不能继续登录了!"
End
End If
If ZFC = "登录成功" Then
Unload Me
Form2.Show
ElseIf ZFC = "密码不正确" Then
MsgBox "你输入的用户密码不正确,请重新输入!"
Text2.Text = "" '清除Text2内容
Text2.SetFocus '光标到Text2,以便重新输入
ElseIf ZFC = "用户名不正确" Then
MsgBox "你输入的用户名不存在,请重新输入!"
Text1.Text = "" '清除Text1内容
Text2.Text = "" '清除Text2内容
Text1.SetFocus '光标到Text1,以便重新输入
End If
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End SubForm2窗体的代码:
程序代码:Private Sub Form_Load() Label1.Caption = "": Label2.Caption = "" '方法一:直接显示用户名称与权限 Label1.Caption = Uname Label2.Caption = Pclass ' Uname变量与 Pclass变量是模块级变量,这里直接调用即可 '------------------------------------- '方法二:使用数据库显示用户名称与权限 Call KKK(conn) '调用模块中的数据库连接 RS.Open "Select * From admin Where name='" & Uname & "' And Class='" & Pclass & "'", conn, 2, 2 Label1.Caption = RS!Name Label2.Caption = RS!Class RS.Close Set RS = Nothing conn.Close Set conn = Nothing End Sub
由于你的数据库结构不清楚,没有调试,估计应该问题不大。
[此贴子已经被作者于2016-10-11 14:01编辑过]

请不要选我!!!




