机房收费系统完成之后,发现其中有很多经典的代码,这些代码在未来的开发中很可能会使用到。针对这么代码进行一个归纳总结,方便日后使用
数据库传递参数SQL传递查询语句,记录查询结果
'传递参数SQL传递查询语句,Msgstring传递查询信息
'自身以一个数据集对象的形式返回
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 ' 定义字符串
On Error GoTo ExecuteSQL_Error
'异常处理
sTokens = Split(SQL) '用Split函数产生一个包含各个子串的数组
Set cnn = New ADODB.Connection '创建连接
cnn.Open ConnectString '打开连接
'判断字符串中是否含有指定内容
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
'执行查询语句
cnn.Execute SQL
'返回查询信息
MsgString = sTokens(0) & " query successsful"
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
'在Visual Basic中,为了避免程序代码出错而终止程序
'一般在无法确定出错原因的情况下采用
Resume ExecuteSQL_Exit
End Function
建立连接
Public Function ConnectString() As String
'本机发布
ConnectString = "FileDSN=charge.dsn;UID=sa;PWD=1"
'异地发布
'ConnectString =
Provider=sqloledb;server=192.168.96.142;UID=sa;PWD=1;database=charge_sys"
End Function
判断数据集是否为空
If mrc1.EOF = False Then '判断用户是否存在
ComboRealname.Text = mrc1.Fields(3) '将查询到的用户名在文本框中显示
mrc1.MoveNext
mrc1.Close
End If
组合查询关键字替换文
Public Function Fieldname(strFieldname As String) As String
Select Case strFieldname
Case "卡号"
Fieldname = "cardno"
Case "姓名"
Fieldname = "studentname"
Case "上机日期"
Fieldname = "ondate"
Case "上机时间"
Fieldname = "ontime"
Case "下机日期"
Fieldname = "offdate"
Case "下机时间"
Fieldname = "offtime"
Case "消费金额"
Fieldname = "consume"
Case "余额"
Fieldname = "cash"
End Select
End Function
导出Excel
Private Sub cmdExportExcel_Click()
Dim xlsapp As Excel.Application '定义excel程序
Dim xlsbook As Excel.Workbook '定义工作簿
Dim xlssheet As Excel.Worksheet '定义工作表
Dim j As Long
Dim i As Long
Set xlsapp = CreateObject("Excel.Application") '创建应用程序
Set xlsbook = xlsapp.Workbooks.Add
Set xlssheet = xlsbook.Worksheets(1) '设置应用表
With xlsapp
.Rows(1).Font.Bold = True '设置字体格式
End With
For i = 0 To MSHFlexGrid1.Rows - 1 '把msflexgrid1的内容写入到电子表格中
For j = 0 To MSHFlexGrid1.Cols - 1
xlssheet.Cells(i + 1, j + 1) = "'" & MSHFlexGrid1.TextMatrix(i, j)
Next j
Next i
xlsapp.Visible = True
End Sub