由于网速的原因,就不上传附件了,先贴代码:
Option Compare Database
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Sub 登录_Click()
Set conn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "用户表", conn
Dim username As String
Dim userpass As String
txt_用户名.SetFocus
username = txt_用户名.Text
If IsNull(username) Or IsNull(txt_密码.Value) Then
MsgBox "用户名或密码不能为空,请重新输入!", vbOKOnly + vbInformation, "错误信息"
Else
If username <> rs!用户名 Then
MsgBox "用户名或密码不正确,请重新输入", vbOKOnly + vbInformation, "错误信息"
txt_用户名.SetFocus
txt_用户名.Text = ""
txt_密码.SetFocus
txt_密码.Value = ""
txt_用户名.SetFocus
Else
rs.Close
rs.Open "用户登录记录表", conn, adOpenDynamic, adLockOptimistic
rs.AddNew
rs!用户名 = username
rs!登陆时间 = Now()
rs!退出时间 = CDate(0)
rs.Update
rs.Close
DoCmd.Close
DoCmd.OpenTable "进口列表"
DoCmd.OpenTable "进口明细"
End If
End If
End Sub
接下来,虽然你是新手,但我还是得把一些新手常见的错误拿出来批斗一番了:
1、没有引用ADO库(Microsoft ActiveX Data Object 2.1 Library,当然你也可以引用高版本的库)。
2、If……Then语句错误。If Then语句有两种写法,单句的没有End If,多句的有:
单句:If 条件成立 Then 结果
多句:If 条件成立 Then
结果1
【Else
结果2】
End If
如果Else部分较多也可以改为多个:
【 ElseIf 条件2 Then
结果2】
………………………………
【 ElseIf 条件N Then
结果N】
不过可读性没有Select Case强。——这个分支语句就不讲了。。。毕竟这里不是写教程。
3、代码是抄过来了,但控件名称没有改过来。因此请修改控件名称。此外,密码部分应加上掩码(右击文本框:属性\掩码,输入:密码)。请把用户名文本框的名车的改为:txt_用户名。对应的密码文本框改为:txt_密码,否则贴了这些代码还是会出错。
4、OpenTable必须分开写,不能Docmd.OpenTable "表1","表2","表3",……"表N"
应当改为:
Docmd.OpenTable "表1"
Docmd.OpenTable "表2"
…………………………………
Docmd.OpenTable "表N"