你的编程基础还不够扎实,随便写了一个,应该是你需要的,你看看,希望对你有点帮助。
我认为如果是多窗体的数据库编程,使用模块比较合理,这样省去了在各个窗体都需要编写数据库连接的代码,另外各窗体间需要的数据可以在模块中定义,在窗体直接调用即可。
添加一个模块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 Sub
Form2窗体的代码:
程序代码:
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编辑过]
请不要选我!!!