当前位置:编程学习 > VB >>

事实错误91 对象变量或with快变量未定义

事实错误91  对象变量或with快变量未定义  红色字体处有问题
新建功能代码
Private Sub Command1_Click()
 If rs.State = 1 Then rs.Close
    rs.Open "select * from fyzhgl_tbl", cn, adOpenKeyset, adLockOptimistic
    rs.AddNew
         qz
    rs.Update
      
    MsgBox "新建成功"
  
    If rs.State = 1 Then rs.Close
    rs.Open "select * from fyzhgl_tbl", cn, adOpenStatic, adLockReadOnly
    If rs.RecordCount > 0 Then
      rs.MoveFirst
      fz
      End If
End Sub

模块代码

Public cn As ADODB.Connection
Public rs As ADODB.Recordset
Sub main()
    Dim snane As String
    Open App.Path & "\servername.txt" For Input As #1
    'print#1,s,now
    Input #1, sname
    Close #1
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=houseff"
    cn.Open
    Set rs = New ADODB.Recordset
    FeiYongGL.Show
End Sub
--------------------编程问答-------------------- 你调用Command1_Click的时候运行sub main了么

可以检查一下
if rs is nothing then
...
else 
 if rs.state...
end if --------------------编程问答-------------------- '****** 工程引用Microsoft ActiveX Data Objects 2.5 Library

试一下吧 --------------------编程问答--------------------
实时错误3265
在对应所需名称或序数的集合中,未找到项目
新建成功后出现如上错误   红色字体处有问题

Private Sub Command1_Click()
Dim rs As New ADODB.Recordset
 If rs.State = 1 Then rs.Close
    rs.Open "select * from fwzhgl_tbl", cn, adOpenKeyset, adLockOptimistic
    rs.AddNew
           rs.Fields("fw_name").Value = Combo10.Text
           rs.Fields("fw_id").Value = Text24.Text
           rs.Fields("fw_sx").Value = Combo12.Text
           rs.Fields("fw_zt").Value = Combo13.Text
           rs.Fields("fw_jzmj").Value = Text1.Text
           rs.Fields("fw_lb").Value = Combo5.Text
           rs.Fields("fw_wymc").Value = Combo9.Text
           rs.Fields("fw_dz").Value = Text13.Text
           rs.Fields("fw_fyqk").Value = Text16.Text
           rs.Fields("fw_xm").Value = Text18.Text
           rs.Fields("fw_sfzh").Value = Text19.Text
           rs.Fields("fw_phono").Value = Text20.Text
    rs.Update
      
    MsgBox "新建成功"
  
    If rs.State = 1 Then rs.Close
    rs.Open "select * from fwzhgl_tbl", cn, adOpenStatic, adLockReadOnly
    If rs.RecordCount > 0 Then
      rs.MoveFirst
      fz
      End If
End Sub

Sub fz()
           Combo10.Text = rs.Fields("fw_name").Value
           Text24.Text = rs.Fields("fw_id").Value
           Combo12.Text = rs.Fields("fw_sx").Value
           Combo13.Text = rs.Fields("fw_zt").Value
           Text1.Text = rs.Fields("fw_jzmj").Value
           Combo5.Text = rs.Fields("fw_lb").Value
           Combo9.Text = rs.Fields("fw_wymc").Value
           Text13.Text = rs.Fields("fw_dz").Value
           Text16.Text = rs.Fields("fw_fyqk").Value
           Text18.Text = rs.Fields("fw_xm").Value
           Text19.Text = rs.Fields("fw_sfzh").Value
          Text20.Text = rs.Fields("fw_phono").Value
             
End Sub --------------------编程问答-------------------- 你确定fwzhgl_tbl里面有fw_name这个么?
--------------------编程问答-------------------- 你的模块头部有没有加“Option Explicit”

按道理的话,你在Command1_Click里声明的rs是局部变量,在fz里应该不能用才对。 --------------------编程问答-------------------- 首先确认字段名无错误
其次建议ADODB.Recordset 都用下列参数(测试起来省事^_^)

rs.Open "select * from fwzhgl_tbl", cn, adOpenKeyset, adLockOptimistic, adCmdText
--------------------编程问答-------------------- 这红色字出错的最大原因是这个字段的内容有可能未初始化 或空值(如你有限定的话)

先将这个 检错的涵数拷到你的 .bas 或这个Form里面

Public Function CheckIsNull(vValue As Variant) As Boolean
   On Error Resume Next
   CheckIsNull = IIf(IsNull(vValue) Or IsEmpty(vValue), True, False)
End Function


If Not CheckIsNull(Rs.Fields("fw_name")) Then Combo10.Text  = Rs.Fields("fw_name")
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,