我做了一个C/S模式的小程序。我误点了一个安装包里面的一个类似于VB生成的.EXE的文件(是在Support文件夹中的),接着我打开我做的小程序就出错了。原因是我的界面上有调用到SQL中的内容。所以就打不开我的程序了。但是奇怪的事,我的客户端的人能够打开啊?就是我所在的服务器上的程序打不开。这真是让我头疼。大家帮我想想办法这是怎么回事???千万不要让我重新装操作系统
:)
在线期待大家的好消息!

解决方案 »

  1.   

    提示什么错误呀?
    你用的什么方法连数据库呀?是ADO?
      

  2.   

    是的
    在cnn.open Connectstring的时候没有错误发生。但是在好像打开记录集的时候发生错误了。错误提示是:
    实时错误'91'
    对象变量或with块变量未设置
      

  3.   

    错误提示是:
    实时错误'91'
    对象变量或with块变量未设置
    这样的错误,建议先检查语法,检查if语句和select语句,看看是否完整,你可以把代码贴出来给大家看看呀
      

  4.   

    可是我什么都没有动过源程序啊。到别人的机子上去装一下连接到服务器(即我的计算机)。一切都成功的啊
    可是我自己的机子上却运行不了。真是让我头疼Sub Main()
    Dim fLogin As New frmLogin
    Set fLogin = New frmLogin
        fLogin.Show vbModal
        If Not fLogin.Ok Then
            End
        End If
        Unload fLogin
    Set fMainForm = New frmMain
        fMainForm.Show
        
    End Sub
    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
        State = True
    On Error GoTo ExecuteSQL_Error
    On Error Resume Next
    '用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 SQL, cnn, adOpenKeyset, adLockOptimistic
        Set ExecuteSQL = rst
    ***************************************************************
        MsgString = "查询到" & rst.RecordCount & "条记录"
    上面一句是检查是否查询到记录用的
    就在这一句的时候,我把鼠标移过去rst.RecordCount上出现了上述的错误。接下去运行了,直到跳出了,这个模块,运行到Form1中。报了上述的错误。
    End IfExecuteSQL_Exit:
    '清空数据集对象
        Set rst = Nothing
    '中断连接
        Set cnn = Nothing
        Exit Function
    ExecuteSQL_Error:
        MsgString = "查询错误:" & Err.Description
        'Debug.Print MsgString
        MsgBox "你没有连接到服务器上,请与管理员联系", vbOKOnly + vbExclamation, "警告"
        State = False
        If frmLogin.Ok Then
            Exit Function
        End If
        'Debug.Print Err.Description
        Resume ExecuteSQL_ExitEnd FunctionPublic Function ConnectString() As String
    ConnectString = "File Name=c:\Program Files\Common Files\ODBC\Data Sources\HTK.dsn;"End Function***************************************
    窗体代码
    Private Sub Form_Load()
    Dim txtSQL As String
    Dim MsgText As String
    Dim mrc As ADODB.Recordset
    txtSQL = "select user_ID from user_Info"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    If Not mrc.EOF Then    ****************从模块中跳到这里,报出了上述错误
        Do While Not mrc.EOF
            cboItem.AddItem Trim(mrc.Fields(0))
            mrc.MoveNext
        Loop
        cboItem.ListIndex = 0
    Else
        MsgBox "请与管理员联系取得用户名", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If
    mrc.Close
    Ok = False
    miCount = 0
    End Sub麻烦各位了。在线等待中....
      

  5.   

    仔细看看你的流程,可能在某个时段发生错误,比如recordset关闭了,但你又要去调用。
      

  6.   

    1.先检查语法,检查if语句和select语句,看看是否完整
    2.看看mdac2.5/2.6