[说明] 以下Visual Basic代码实现了系统登录时对用户进行合法性检查。界面如图9-6所示。阅读下面代码,将 (n) 处代码补充完整。
[代码7-1] Begin VB.Form form1 BackColor = &H00808080& Caption = "系统登录" //...窗体描述(略)Begin VB.Labe1 Labe12Backstyle = 0 ’TransparentCaption = "密 码: " //…窗体描述(略) End Begin VB.Labe1 Labe11Backstyle = 0 ’TransparentCaption = "操作员: " //...窗体描述(略) End //...窗体描述(略) End [代码7-2] Dim TIM As Integer Dim mydb As Database Dim myrs As Recordset Dim sq1 As String Private Sub Form ACdvate ( ) Set mydb=Workspaces (0).OpenDatabase (App.Path&"\CIUID.mdb") ’打开数据库 sq1="select操作员from qxsz" Set myrs=mydb.OpenRecordset (sq1) If (1) Then myrs.MoveLast If (2) Then myrs.MoveFirst For i=0 TO myrs.RecordCount-1 (3) (4) Next i If (5) Then master.Listlndex=0 myrs.Close mydb.Close master.SetFocus End Sub [代码7-3] Private Sub Cmdok_Click ( ) ’确认操作员和密码 Dim MESSAGE As String If master.Text<>’’’ThenSet mydb=Workspaces (0) .OpenDatabase (App.Path&"\CIUID.mdb")Set myrs=mydb.OpenRecordset ("qxsz", dbOpenDynaset)myrs.Findfirst"操作员="+Chr(34) +master.Text+Chr(34) +"" ’查找操作员If (6) Then MsgBox ("无此操作员!") Else If password.Text=myrs.Fields("密码") Then ’确认密码 MsgBox"系统登录成功!" ’系统登录成功 Else If TIM=3 Then MESSAGE=MsgBox ("密码输入错误,请向系统管理员查询!",0,"") If MESSAGE=vbOK Then End End If MsgBox ("密码错误,请重新输入密码!") TIM=TIM+1 ’密码输入错误次数 password.SetFocus End IfEnd If End If End Sub
参考答案:
解析:(1)myrs.EOF=False (2)myrs.BOF=False (3)master.Addltem (myrs.Fields (0)) (4)myrs.MoveNext (5)master.ListCount>0 (6)myrs.NoMatch 本题中Visual Basic代码实现了系统登录时对用户进行合法性检查。(1)根据满足条件后,实现“myrs.MoveLast”操作,那么,这个条件就是myrs.EOF=False。同理(2)为myrs.BOF=False。(3)、(4)完成用户名添加到数据库中,作为合法用户,答案分别应为master.Addltem (myrs.Fields(0))和myrs.MoveNext。对于(5)当master的ListCount不是0时(当然大于0了),将master的Listlndex置为初始0位置。(6)输入用户名与数据库中的用户不匹配,即myrs.NoMatch时,“无此操作员!”输出报警。