rs不是全局变量
修改为公共模块:
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Public Sub mian()
Dim str  As String
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "dsn=hgsql2;uid=sa;pwd=o4w5n6;database=hgprd"
str = "select * from sysusers"
rs.Open str, conn, adOpenDynamic, adLockOptimistic
End Sub
Private Sub Command1_Click()DataGrid1.ClearFields
Set DataGrid1.DataSource = rsEnd Sub

解决方案 »

  1.   

    你在引用中引用"microsoft actiecx data object 2.5[或其它版本]"此项了没有。
      

  2.   

    Public conn As ADODB.Connection  '放在公共模块中
    Public rs As ADODB.Recordset  '放在公共模块中Sub Main() '放在公共模块中
    Dim str  As String
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    conn.ConnectionString = "dsn=hgsql2;uid=sa;pwd=o4w5n6;database=hgprd"
    conn.open
    str = "select * from sysusers"rs.CursorLocation = adUseClientrs.Open str, conn, adOpenDynamic, adLockOptimistic
    End SubPrivate Sub Command1_Click()
    DataGrid1.ClearFields
    Set DataGrid1.DataSource = rs
    End Sub
      

  3.   

    将rs 在模块中定义
    Public rs As ADODB.Recordset