我第一个窗体敲的是登录,当我想总结登录窗体时,我发现不仅登录窗体,所有窗体都有个大哥,应该把这个大哥排到前面。
先把我的注释贴上,这里面是我的公用模块思路,之后再总结我的收获~
’声明主窗体和用户名
’定义数据库连接字符串
'声明用SQL语句从数据库记录集中调取记录
’连接数据库
’执行查询语句返回信息
’创建数据库对象集并调用
’异常处理
’退出时清空数据集对象问题
’查询错误
’判断输入内容是否为空
’显示/卸载主窗体
Public Function connectstring() As String
connectstring = "filedsn=studentinfo.dsn;UID=sa;PWD=123456"
End Function
connectstring就好比一个容器,容器里面加入了文件DSN的ID和密码这些字符,但它并没有使用的功能,定义是为了方便在后面我们打开数据库连接位置时用一个connectstring就可以代表了。
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
'连接数据库
sToken = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open connectstring
ADODB(Active Date Objects Date Base)它是动态数据链接对象,我们定义cnn,rst后,就可以用他们来连接数据库和调用数据记录集了。
On Error GoTo ExecuteSQL_Error
'退出时清空数据集对象问题
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
'查询错误
ExecuteSQL_Error:
MsgString = "查询错误:" & Err.Description
Resume ExecuteSQL_Exit
End Function
'判断输入内容是否为空
Public Function testtxt(txt As String) As Boolean
If Trim(txt) = "" Then
testtxt = False
Else
testtxt = True
End If
End Function
通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。
'声明并从动态链接库中引用“获取用户名信息”过程
Private Declare Function GetuserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long