程序运行没有错误,但是用setup factory做成seup文件在本机安装后执行就出现:运行错误'91':未设置对象变量或with block变量。
我的有个登陆界面,输入用户名和密码后确认才出现此问题,请高手指教,十分着急,谢谢^_^
程序单步执行都是没问题的,每个数据库都操作过,没有错误

解决方案 »

  1.   

    出现错误的地方是哪一行代码?可以用插入msgbox方法测试。觉得可能是数据库连接对象什么的创建失败。
      

  2.   

    加MsgBox 确定在红色部分,loag form1出错,在form1里面最前面加MsgBox还是提示错误Private Sub Command2_Click()
        Form6.Adodc1.RecordSource = "select * from 值班员注册表" _
        & " where 账号 = '" & txtUserName.Text & "'" _
        & " and 密码 = '" & txtPassword.Text & "'"
        
        Form6.Adodc1.Refresh
        
        If Form6.Adodc1.Recordset.RecordCount = 1 Then
            LoginSucceeded = True
            Form6.Adodc1.Recordset.Close
            DutyNum = Val(txtUserName.Text)
            Me.Hide        Form1.Show    Else
            Form6.Adodc1.Recordset.Close
            MsgBox "无效的密码,请重试!", , "登录"
            txtPassword.SetFocus
        End If
      

  3.   

    Form1.Show Else这里的else是什么?直接去掉。或者用Form1.Show 1
      

  4.   

    不对,else应该你排版错误,是上面if的。。直接Form1.Show应该没问题的,错误提示信息是什么?
      

  5.   

    数据库在硬盘上的位置不对。删除ADOC1属性里的各种设置(包括连接串、数据源等全部删空),在软件中有相对路径,因为它指向一个数据的固定位置。
      

  6.   

    数据库在硬盘上的位置不对。删除ADOC1属性里的各种设置(包括连接串、数据源等全部删空,因为它指向一个数据的固定位置。),在软件中设置相对路径(app.path)
      

  7.   

    看来是我没说清楚:
    错误提示:运行时错误‘91’:未设置对象变量或with block变量是这样的:
    Private Sub Command2_Click()
        Form6.Adodc1.RecordSource = "select * from 值班员注册表" _
        & " where 账号 = '" & txtUserName.Text & "'" _
        & " and 密码 = '" & txtPassword.Text & "'"
        
        Form6.Adodc1.Refresh
        
        If Form6.Adodc1.Recordset.RecordCount = 1 Then
            LoginSucceeded = True
            Form6.Adodc1.Recordset.Close
            DutyNum = Val(txtUserName.Text)
            Me.Hide
            MsgBox"OK"    '到这里是没问题的        
            Form1.Show
        Else
            Form6.Adodc1.Recordset.Close
            MsgBox "无效的密码,请重试!", , "登录"
            txtPassword.SetFocus
        End If
    End Sub执行Form1.Show
    Private Sub Form_Load()
        MsgBox "OK"          '在这里的提示出来前就出现错误了,关掉错误提示才显示"OK"    
        Dim FileName$
        Dim rsmn As New ADODB.Recordset
        Dim cnStr As String
        Dim i As Integer
        
        For i = 0 To 3
            WebBrowser2(i).Navigate (App.Path & "\gif046.gif ")
            WebBrowser2(i).Visible = False
            SysStatue(i) = False
        Next
        
        FileName = App.Path & "\ZDA.mdb"
        conn.CursorLocation = adUseClient
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & FileName & ""
        
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.PortOpen = True
        MSComm1.RThreshold = 1
        MSComm1.InputMode = comInputModeBinary
        
        cnStr = "select * from 上下班记录表"
        rsmn.Open cnStr, conn, adOpenKeyset, adLockPessimistic    rsmn.AddNew    rsmn("值班员号").Value = frmLogin.txtUserName
        rsmn("上下班记录").Value = "上班"
        rsmn("日期").Value = Format(Now, "yyyy-mm-dd")
        rsmn("时间").Value = Format(Now, "hh:mm:ss")
        rsmn.Update
        rsmn.CloseEnd Sub
    不知道在Form1.Show之前换做了些什么?
      

  8.   

    可能是这个窗体顶部定义的模块级变量有问题。比如dim xx as new xxx的,然后引用的dll不存在或有问题就这样了。
      

  9.   

    我单步执行或直接运行都没问题,就是在生成exe文件执行才出现这样的问题,而且是在本机执行的!!!
      

  10.   

    先执行窗体上控件属性里的设置的属性。
    查看form1里ADODC属性里设置的东西,有的话先删除了试试。再看别的控件属性里有什么设置