cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) & " query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & " 条记录 "
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误: " & Err.Description
Resume ExecuteSQL_Exit
End Function
ExecuteSQL函数有两个参数:SQL和MsgString。其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。而在VB中不允许直接访问数据库中的表,只能通过记录集对象(Recordset)对其进行浏览和操作。
在ExecuteSQL函数中使用了ConnectString函数,这个函数用来链接数据库的,代码如下:
Public Function ConnectString() As String
Dim strAppPath As String
strAppPath = App.Path
If Right(strAppPath, 1) <> "\" Then
strAppPath = strAppPath & "\"
End If
strAppPath = strAppPath & "Data\cskc.mdb"
ConnectString = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & strAppPath & ";UID=;PWD="
End Function
另外系统运行时,会先显示系统封面,然后需要对用户进行判断。如果登录者是授权用户,则允许进入系统,否则将停止程序的执行。这些都需要在系统运行的最初进行,因此将代码放在系统启动模块中,代码如下:
Sub Main()
Dim fInit As New frmInit
fInit.Show vbModal
If fInit.COVER Then
Dim fLogin As New frmLogin
fLogin.Show vbModal
If Not fLogin.OK Then
End
End If
Unload fLogin
Set fMainForm = New frmMain
fMainForm.Show
End If
End Sub
3、测试结果
图5-1 登录封面效果图
(二)登录模块
1、模块功能
系统显示了登录封面以后需要对用户进行判断,登录模块就是用来判断用户是否为授权用户,判断依据就是数据库中已有的用户信息。
2、模块界面
登录模块界面比较简洁,给用户提供一个输入用户名和密码的平台,如图5-2所示。
图5-2 登录界面
3、主要代码分析
txtSQL = "select * from 用户表 where UserID = '" & txtUserName.Text & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = True Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
If Trim(mrc.Fields("UserPWD")) = Trim(txtPassword.Text) Then