设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1932|回复: 2
打印 上一主题 下一主题

[宏/菜单/工具栏] 为什么会提示with块未设置?

[复制链接]
跳转到指定楼层
1#
发表于 2003-11-21 04:20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前台为mdb,后台为SQL2000
引用函数为:
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)
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=ZJGL.dsn;uid=sa;pwd="
End Function
执行代码为:
Private Sub cmdConnect_Click()
    Dim txtsql As String
    Dim mrc As ADODB.Recordset
    Dim msgtext As String
    username = ""
    If IsNull(Me.txtUsername) Then
        MsgBox "没有这个用户或未受权,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
        txtUsername.SetFocus
    Else
    txtsql = "select * from dbo.职工资料 where 职工ID='" & txtUsername & "'"
        Set mrc = executeSQL(txtsql, msgtext)
      If mrc.EOF = True Then'运行到这里提示with块未设置
           MsgBox "没有这个用户或未受权,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
           txtUsername.SetFocus
        Else
            If Trim(mrc.Fields(20)) = Trim(txtPassword.Text) Then
               ok = True
               username = Trim(mrc.Fields(1))
               userid = Trim(txtUsername.Text)
               mrc.Close
            Else
               MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
               txtPassword.SetFocus
               txtPassword.Text = ""
               micount = micount + 1
               If micount = 3 Then
                  MsgBox "输入密码不正确,已经3次!", vbOKOnly + vbExclamation, "警告"
                  DoCmd.Close
                  DoCmd.Quit
               End If
           End If
        End If
    End If
End Sub


[此贴子已经被作者于2003-11-20 20:23:57编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-11-21 04:46:00 | 只看该作者
这应是《VB 数据库开发实例导航》的例子,当时也碰到过这个问题。executeSQL在ACCESS好像用不了
3#
 楼主| 发表于 2003-11-21 04:54:00 | 只看该作者
啊,不会吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-29 07:45 , Processed in 0.096563 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表