珞珈山水BBS电脑网络程序人生 → 单文区文章阅读

单文区文章阅读 [返回]
发信人: huaxia (华夏), 信区: Programm
标  题: 一个VB6+SQL2000程序,有点问题,请高手指点
发信站: BBS 珞珈山水站 (Sat Aug 19 09:58:38 2006)

公共模块:

Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.
Recordset
'传递参数SQL传递查询语句,MsgString传递查询信息
'自身以一个数据集对象的形式返回
Dim cnn As ADODB.Connection
'定义连接
Dim rst As ADODB.Recordset
'定义字符串
Dim sTokens() As String
'异常处理
On Error GoTo ExecuteSQL_Error
'用Split函数产生一个包含各个子串的数组
sTokens = Split(SQL)
'创建连接
Set cnn = New ADODB.Connection
'打开连接
cnn.Open ConnectString
'判断字符串中是否含有指定内容
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
'执行查询语句
cnn.Execute SQL
'返回查询信息
MsgString = sTokens(0) & "query successful"
Else
'创建数据集对象
Set rst = New ADODB.Recordset
'返回查询结果
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
'rst.MoveLast  '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 ConnectString() As String
ConnectString = "FileDSN=myconnection.dsn;UID=sa;PWD="
End Function
Public Function Testtxt(txt As String) As Boolean
'判断输入内容是否为空
If Trim(txt) = "" Then
        Testtxt = False
Else
        Testtxt = True
End If
End Function
Sub Main()
Dim fLogin As New frmLogin
'显示登陆窗体
fLogin.Show vbModal
'判断是否授权用户
If Not fLogin.OK Then
'Login Failed so exit app
End
End If
Unload fLogin
'判断是将进入系统
Set fMainForm = New frmMain
fMainForm.Show
End Sub
Public username As String

登陆窗口:
Option Explicit
Public OK As Boolean
'记录确定次数
Dim miCount As Integer

Private Sub cmdCancel_Click()
OK = False
Me.Hide
End Sub

Private Sub cmdOK_Click()
'用来存放SQL语句
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 系统管理 where 用户名 =" & txtUserName.Text & ""
    '执行查询语句
    Set mrc = ExecuteSQL(txtSQL, MsgText)
 〉〉   If mrc.EOF = True Then
        MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警
告"
        txtUserName.SetFocus
    Else
        '判断输入密码是否正确
        If Trim(mrc.Fields(1)) = Trim(txtPassword.Text) Then
            OK = True
            mrc.Close
            Me.Hide
            username = Trim(txtUserName.Text)
        Else
            MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警
告"
            txtPassword.SetFocus
            txtPassword.Text = ""
        End If
    End If
End If
'记载输入密码次数
miCount = miCount + 1
If miCount = 3 Then
    Me.Hide
End If
Exit Sub
End Sub

Private Sub Form_Load()
          OK = False
          miCount = 0
End Sub

每次执行,输入用户名,就会弹出错误框,(实时错误“91”,对象变量或with块变量未
设置)。光标停在图中>>处。。。
请高手指点。。。
--

※ 来源:·珞珈山水BBS站 http://bbs.whu.edu.cn·[FROM: 58.51.162.*]
[返回单文区目录]

武汉大学BBS 珞珈山水站 All rights reserved.
wForum , 页面执行时间:25.845毫秒