不管是做学生还是做机房,首先要解决的问题就是要连接数据库,前面一篇博客,写了怎样“连”,这篇博客写一下,代码部分怎样实现。
首先,得新建一个模块,再模块里写下如下内容:
Public mrc As ADODB.Recordset '定义一个记录集
Public msgText As String
Public txtSQL As String
Dim cnn As ADODB.Connection '定义数据库的连接
Dim rst As ADODB.Recordset '定义数据库的访问集
Dim sTokens() As String '这是一个分割符
On Error GoTo ExecuteSQL_Error '定义完了后,就On error goto:
sTokens = Split(SQL)
Set cnn = New ADODB.Connection '定义完了,就开始打开CNN的连接
cnn.Open ConnectString '打开连接后,就直接让CNN打开相对应的string,即具体位置
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '非Select语句
cnn.Execute SQL '数据量不大时,可以在连接上,直接执行SQL语句
MsgString = sTokens(0) & " query successful"
Else 'Select语句
Set rst = New ADODB.Recordset '从CNN打开string接着这里看,set一个记录集
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
'得到临时表,游标指向第一条记录
'get RecordCount,
Set ExecuteSQL = rst '然后让这个记录集赋值到EXEcute这里
MsgString = "查询到" & rst.RecordCount & _
" 条记录 "
End If
ExecuteSQL_Exit: '如果执行结束后,让CNN和rst都变成nothing
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 '定义testtxt是boolean值。
If Trim(txt) = "" Then '如果是空,则txt为错误
Testtxt = False
Else
Testtxt = True '否则为正确
End If
End Function
Public Function ConnectString() As String
ConnectString = "FileDSN=charge.dsn;UID=sa;PWD=123456" '连接上数据库时,让CNN open这句话
End Function
然后,在每个要连数据库的窗体中,写下如下代码:
txtSQL = "select * from student_Info "
Set mrc = ExecuteSQL(txtSQL, msgText)
这样之后,就可以进行一系列的数据操作了~