机房收费系统已经做了很长一段时间了,虽然到目前为止,仍然没有结束,但已经结节尾声了。我感觉现在有必要回首总结一下整个机房收费系统。
除了结账做了一半,报表接触一点之外,其他的都基本上差不多了。从做过的这些和正要做的来分析机房收费,我把他分成了几个部分:查询数据库类(简单查询显示,组合查询)、向数据库写入数据类、导出表格类、报表类、各个表格之间相互连接类(结账)。
以登陆窗体为例子,简单总结一下VB查询数据库实现登陆系统。我的登陆窗体设计如下:
设计登陆窗体后,设计登陆模块,代码如下:
Public UserName As String
Sub Main()
Dim fLogin As New frmLogin
fLogin.Show vbModal '显示登录窗体实例
'OK为fMainForm类的成员
If Not fLogin.OK Then '条件选的好
'Login Failed so exit app
End
End If
Unload fLogin
Set fMainForm = New frmMain '显示主窗体实例
fMainForm.Show
End Sub
'以文件DSN标记,访问ODBC数据源
Public Function ConnectString() As String
ConnectString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=**;PassWord=******;Initial Catalog='数据库';Data Source=使用者IP"
End Function
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
'executes SQL and returns Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '非Select语句
cnn.Execute SQL '数据量不大时,可以在连接上,直接执行SQL语句
MsgString = sTokens(0) & " query successful"
'虽然MsgString不是返回值,但传递方式是ByRef,实参地址和这个地址相同
Else 'Select语句
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
'得到临时表,游标指向第一条记录
'get RecordCount,
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
Public Function Testtxt(txt As String) As Boolean'判定不为空
If Trim(txt) = "" Then
Testtxt = False
Else
Testtxt = True
End If
End Function
通过模块,连接到数据库中,然后再设置登陆窗体的代码,在登陆窗体中,点击登陆,先判断用户名和密码是否符合要求,然后进入数据库用户表中,查询用户是否存在,若用户存在,查询密码是否正确,若都正确,则显示主窗体,登陆窗体隐藏。
我的代码如下,仅供参考(欢迎提错)
Option Explicit
'-----------------------------------------------------------------------------------
'窗体:登陆窗体
'说明:用户名和密码不能为空,查询用户名,对应的密码,准确无误后进入主界面,引入机器名函数
'------------------------------------------------------------------------------------
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long'调用计算机名函数
'该类的公有成员
Public OK As Boolean
'记录登陆次数
Dim Count As Integer
Private Sub cmdCancel_Click()
OK = False
Me.Hide
End Sub
Private Sub cmdOk_Click() '登陆
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim MsgText As String
UserName = ""
If Trim(txtUserName.Text = "") Then '查询用户名是否存在
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
txtSQL = "select * from user_Info where userID ='" & txtUserName.Text & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF Then
MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Else
If Trim(mrc.Fields(1)) = Trim(UserID.Text) Then
OK = True
mrc.Close
Me.Hide
UserName = Trim(txtUserName.Text)
Else
MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
UserID.SetFocus
UserID.Text = ""
End If
End If
End If
Count = miCount + 1'限制登陆次数
If Count = 3 Then
Me.Hide
End If
Exit Sub
End Sub
Private Sub Form_Load()
Dim sBuffer As String
Dim lSize As Long
sBuffer = Space$(255)
lSize = Len(sBuffer)
Call GetUserName(sBuffer, lSize)
'API中字符串做参数,需要提前确定大小
If lSize > 0 Then
txtUserName.Text = ""
Else
txtUserName.Text = vbNullString '空字符串
End If
OK = False
miCount = 0
End Sub
VB查询数据库之登陆窗体到此就结束了,下一篇计划是VB查询数据库之组合查询。
分享到:
相关推荐
VB数据库开发实例——专卖连锁销售统计系统并解析
数据库技术及应用——SQL Server课件
绝对原创的vb查询access数据库 本程序功能如下: 1.将数据库mycnno.mdb中的数据显示在控件datagrid中 2.用文本框1输入要查询的学号,文本框2显示查询的结果
VB数据库编程报告——学生管理系统
VB数据库编程报告——办公秘书系统
VB编程源代码 02图形窗体VB编程源代码 02图形窗体VB编程源代码 02图形窗体VB编程源代码 02图形窗体VB编程源代码 02图形窗体VB编程源代码 02图形窗体VB编程源代码 02图形窗体VB编程源代码 02图形窗体VB编程源代码 02...
VB版机房收费系统,VB版机房收费系统,VB版机房收费系统,VB版机房收费系统,VB版机房收费系统,
VB 模拟数据库查询 VB 模拟数据库查询
教程内容:VB开发数据库之使用数据绑定访问数据 使用数据库中数据,首先需要建立数据库连接,并获得其中的数据。VB为用户提供了许多方式访问数据库。
VB数据库查询示例程序,简单说明VB查询数据库
VB 不规则窗体 VB 不规则窗体 VB 不规则窗体
vb.net数据库连接实例,人事管理系统,数据库管理系统,图书馆管理,学生名册管理系统
前台用的VB,数据库为Access有详 前台用的VB,数据库为Access有详
软件技术大作业——机房管理系统,vb编写,内含数据库、窗体工程、说明书等所有文档程序。
漂亮的VB程序窗体,打破传统的Windows窗体. 此资源为网上收集.
vb.net 数据库访问类vb.net 数据库访问类
一个使用vb做的数据库查询例子
《VB.NET数据库编程》共分为三个部分,依次讲述了VB.E和AD.E的工作原理讲起,介绍了有关数据库访问、错误处理、存储过程、视图、触发器、消息队列、数据外壳,以及数据绑定控件的知识,并完整地实现了一个名为UserMa...
VB如何与ACCESS数据库连接VB如何与ACCESS数据库连接VB如何与ACCESS数据库连接VB如何与ACCESS数据库连接VB如何与ACCESS数据库连接
VB.net数据库编程