现在的位置: 首页 > 综合 > 正文

系统开发—-万能模板

2013年12月04日 ⁄ 综合 ⁄ 共 2210字 ⁄ 字号 评论关闭

一、数据库连接:

Dim objRs As ADODB.Recordset
 
Private Sub Form_Load()
    Dim objCn As New Connection
    
    '建立数据库连接(本地连接)
    strcn = "Provider=SQLOLEDB;Data Source=.;Initial CataLog=Charge_zlj;UID=sa;PWD=123456"
    objCn.ConnectionString = strcn
    objCn.Open
    
    '创建RecordSet对象,获得系统用户信息
    Set objRs = New Recordset
    Set objRs.ActiveConnection = objCn
    objRs.CursorLocation = adUseClient '客户端临时表,可以提供重新排序和使用索引查寻记录等特有功能
    objRs.CursorType = adOpenDynamic '开放式记录锁定,在执行Update方法时锁定记录
    objRs.LockType = adLockOptimistic
    
    strsql = "select * from 学生注册 "
    objRs.Open strsql
End sub

二、限制用户请求验证次数:

Private Sub cmdOK_Click()
    Static intLogTimes As Integer '用于保存用户请求验证次数
        intLogTimes = intLogTimes + 1 '计算登录次数
        If intLogTimes > MaxLogTimes Then
            MsgBox "您已经超过允许用户验证次数!" & vbCr & "应用程序将结束!", vbCritical, "登录验证"
            End
        Else '进一步验证登录信息合法性
            '检查是否存在指定用户
            objRs.MoveFirst
            objRs.Find "用户名=’" & txtName.Text & "'"
            
            If objRs.EOF Then
                MsgBox "用户名错误!", vbOKOnly + vbCritical, "系统登录"
                txtName.SetFocus
                txtName.SelStart = 0
                txtName.SelLength = Len(txtName.Text)
                Exit Sub
            Else
                '检查密码是否正确
                If objRs!密码 <> txtPW Then
                    MsgBox "密码输入错误!", vbOKOnly + vbCritical, "系统登录"
                    txtPW.SetFocus
                    txtPW.SelStart = 0
                    txtPW.SelLength = Len(txtPW.Text)
                    Exit Sub
                    
                Else
                    '在系统主窗体完成后完成以下的语句
                    ThisUserName = txtName
                    ThisPassword = txtPW
                    Unload Me '卸载登录窗体
                    frmMain.Show
                End If
                  
            End If
        End If
End Sub


三、查找是否存在重复记录

'查找是否存在重复记录
Private Function isRepeatCardID() As Boolean
'检查卡号是否已经被注册过
    Dim objCopy As New Recordset
    Set objCopy = objRs.Clone                   '创建objRs的副本
    If objCopy.RecordCount > 0 Then
        objCopy.MoveFirst
        objCopy.Find "卡号='" & Trim(txtCardID.Text) & "'"
        If Not objCopy.EOF Then  '找到
            isRepeatCardID = True
        End If
    Else
        isRepeatCardID = False 
    End If 
End Function

1、

 

2、

正确:objRs.Find "卡号='1001'"
错误:objRs.Find "卡号=' 1001 '"      注意:1001前/后空格的存在
 
在数据库中Find查找时,''一对单引号之内的内容要和表中的信息完全匹配,才会被找到的

3、

EOF指:最后一条记录的下一条记录
objRs.EOF

 如果查找到重复记录,返回True 指针定位在重复记录的地方

 找不到重复记录         ,返回False指针定位在EOF(最后一条记录的下一条记录)的位置 

'有两种表达方式:默认是:False(找不到重复记录)
        If Not objCopy.EOF Then  '找到重复记录
            isRepeatCardID = True
        End If                                           
'或者
        If  objCopy.EOF  Then  '没找到
                  isRepeatCardID = false
        Else
                  isRepeatCardID = True
        End If

四、添加错误处理

'过程,段首
On Error GoTo DealError
 
 
'过程,段尾
DealError:
Msg="程序执行错误,错误信息如下:" & vbCrLF & Err.Description
ShowError msg
End Sub


五、判断在所有子窗体关闭之后,才关闭系统主窗体

Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If MsgBox("您选择了关闭机房收费系统,是否继续?", vbOKOnly + vbInformation, "机房收费系统") = vbYes Then
    '判断在所有子窗体关闭之后,才关闭系统主窗体
        If Not Me.ActiveForm Is Nothing Then
            MsgBox "请先关闭打开的子窗体!", vbCritical, "机房收费系统"
            Cancel = 1        
        End If
    Else
        Cancel = 1
    End If    
End Sub

抱歉!评论已关闭.