Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset
conn.Open "driver={SQL Server};server=discover\wincc;database=cao;uid=sa;pwd=sa"rs.Open "table2", conn, 1, 3End Sub提示rs.open报错,提示object variable or with block variable not set . runtime error91
刚学这个东东,求助.

解决方案 »

  1.   

    Dim rs As ADODB.Recordset应该写成:
    Dim rs As New ADODB.Recordset原来的写法相当于只创建了一个指针,没有分配或者指向任何内存空间。
    Dim rs As New ADODB.Recordset相当于:
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset这两种写法虽然功能一致,但适用的场合不同,还需在编程实践中体会。
      

  2.   

    Private Sub Command1_Click()
    Dim conn As New ADODB.Connection
    Dim rs As new ADODB.Recordset
    conn.Open "driver={SQL Server};server=discover\wincc;database=cao;uid=sa;pwd=sa"
    if rs.state=adsateopen then rs.close
    rs.Open "select * from table2", conn, 1, 3End Sub
      

  3.   

    在问下if rs.state=adsateopen then rs.close
    这行是什么意思呢?
      

  4.   

    rs.state=adsateopen表示记录集处于打开状态,所以:
    if 记录集打开 then 关闭记录集
      

  5.   

    可以随时用 State 属性确定给定对象的当前状态。对象的 State 属性可以是值的组合。例如,如果正在执行某个语句,此属性将有一个 adStateOpen 和 adStateExecuting 的组合值。也下因为如此,建议不要用下面的形式判断记录集是否打开:
    if rs.State = adStateOpen then
        MsgBox "rs is open!"
    else
        MsgBox "rs is closed!"
    endif
    而应采用下面的方法,这才是合理的:
    if rs.State = adStateClosed then
        MsgBox "rs is closed!"
    else
        MsgBox "rs is open!"
    endif
      

  6.   

    呵呵,还有问题,一个记事本类似下边这样这种格式:
                     price     costprice    货币
    id  111
                       50        30          us
                       45        32          
    id  111 
                       46        23          ch
    id  222
                     
                      100        78          ch
    我想将其中数据写到sql数据库,us下边没标的话就代表是us,应该如何做呢,
    谢谢大家!呵呵
      

  7.   

    最好使用SPLIT函数来分割数据!!
      

  8.   

    得点分不容易,这个问题我还真不会。
    我的意见还是文件操作,循环读取文本行,然后用split函数分割信息字段,写入数据库。印象中好像有更好的方法,类似SQL查询语句的形式,楼主你找找吧。
    大致如此:
    select ... from ...(c:\test.txt)
    [以上这个只是大致结构,肯定不是正常的语句啦!]
      

  9.   

    恩,呵呵,说说思路也好,id号是唯一的,split分割,应该如何分割,select能用在记事本上吗
      

  10.   

    下面的东西可能对你有用,可以看一下:
    打开SQL Server联机帮助,在“索引”中输入“BULK INSERT”,在列表中选择“BULK INSERT(已描述)”,查看相关帮助信息。举个例子吧,有一个文本文件:C:\Test.txt,内容如下:
    a    b    c
    d    e    f
    g    h    i
    j    k    l
    m    n    o通过执行以下语句,可以导入数据到数据库表Test中:
    bulk insert test
    from 'C:\Test.txt'执行后,Test表的内容为:
    A    B    C
    ------------------
    a    b    c
    d    e    f
    g    h    i
    j    k    l
    m    n    o详细请查看对应的帮助文档,可以实现更复杂的功能。
      

  11.   

    呵呵,谢谢,我看下,不过好象不行吧,就跟我直接导入excel似的,满足不料要求.
    还有表应该如何创建呢,id号是唯一的,有n个id号和n个price
      

  12.   

    我现在就是想把数据导如数据库中,id号唯一,就象111,要有3个price,给个思路,库又该如何建呢