dim rs as new adodb.recordset请教一下如何将从SQL Server内查询到的记录集rs 赋值给Datagrid控件,让其能够显示查询到的记录集或者不使用这个控件,用其他的什么方式能够把rs记录集显示出来

解决方案 »

  1.   

    set Datagrid.datasource=rs
    Datagrid.refreshlistview can also do the job 
      

  2.   

    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim cmd As New ADODB.Command
    Dim SQL As StringPrivate Sub Command1_Click()
       Set cmd.ActiveConnection = cnn
          cmd.CommandType = adCmdUnknown
          SQL = "SELECT * FROM 权限信息表"
          cmd.CommandText = SQL
       Set rs = cmd.Execute
           DataGrid1.DataSource = rs
           DataGrid1.Refresh
    End SubPrivate Sub Command2_Click()
     End
    End SubPrivate Sub Form_Load()
       cnn.ConnectionString = "Provider=SQLOLEDB;Data Source=wzh;UID=sa;PWD=;Database=db_manpowerinfo_data"
       cnn.Open
    End Sub请问一下上面这段程序有问题吗?为何运行后,会产生“未找到方法或者数据成员”的错误?
      

  3.   

    给你几个函数,绝对能用 
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    '函数功能:连接指定的数据库 
    '参数说明:cnnP:数据库连接对象; 
    '        :adoP:数据集存储对象; 
    '        :strPath:数据库路径; 
    '        :strPassword:数据库密码; 
    '返回说明:True:连接成功  False:连接失败 
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    Public Function funConnectDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset, ByVal strPath As _ 
        String, ByVal strPassword As String) As Boolean 
    On Error GoTo errFunction 
        Set cnnP = New ADODB.Connection 
        Set adoP = New ADODB.Recordset 
        cnnP.Provider = "Microsoft.Jet.OLEDB.4.0" 
        cnnP.Open "Data Source = " & strPath & ";jet oledb:database password=" & strPassword 
        funConnectDataBase = True 
        Exit Function 
    errFunction: 
        funConnectDataBase = False 
    End Function 
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    '函数功能:关闭数据库连接对象和数据文件的关联 
    '参数说明:cnnP:数据库连接对象; 
    '        :adoP:数据库存储对象; 
    '返回说明:True:关闭连接成功  False:关闭连接失败 
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    Public Function funCloseDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset) As Boolean 
    On Error GoTo errFunction 
        Set adoP = Nothing 
        Set cnnP = Nothing 
        funCloseDataBase = True 
        Exit Function 
    errFunction: 
        funCloseDataBase = False 
    End Function 
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
    '过程功能:对指定的对象执行指定的SQL语句 
    '参数说明:cnnP:ADO连接对象 
    '        :adoP:ADO记录集对象 
    '        :strSql:SQL语句 
    '        :bolQueryRecord:是否是查询记录集 
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Public Sub subExcuteSQL(cnnP As ADODB.Connection, adoP As ADODB.Recordset, strSql As String, bolQueryRecord _ 
        As Boolean) 
        If bolQueryRecord Then  '如果是查询记录集 
            adoP.Open strSql, cnnP, adOpenStatic, adLockBatchOptimistic 
        Else 
            cnnP.Execute strSql 
        End If 
    End Sub 
      

  4.   

    谢谢你给的函数
    能随便告诉一下,Datagrid控件如何显示rs的数据集吗?
      

  5.   

    Private Sub Command1_Click() 
      Set rs = New ADODB.Recordset
          rs.ActiveConnection = cnn
          'SQL = "SELECT * FROM 权限信息表" 
          'cmd.CommandText = SQL 
      rs.Source = "SELECT * FROM 权限信息表"
      rs.Open
          DataGrid1.DataSource = rs 
          DataGrid1.Refresh 
    End Sub 
    这样试试
      

  6.   

    DataGrid1.DataSource = rs 这句有问题!!
      

  7.   

    set DataGrid1.DataSource = rs 这样试试
      

  8.   

    set DataGrid1.DataSource = rs 
      

  9.   

       Set cmd.ActiveConnection = cnn
        SQL = "SELECT * FROM MES_View01 WHERE JZ= '?' AND BLM=' ?' AND RQ= '?'"
        cmd.CommandType = adCmdUnknown
        cmd.CommandText = SQL
        Param(0) = Combo1.Text
        Param(1) = Txt1.Text
        Param(2) = Txt2.Text
        Set rs = cmd.Execute(, Param)
        Set DataGrid1.DataSource = rs  需要接收3个参数,来执行SQL语句,查询的结果为RS,然后用 Set DataGrid1.DataSource = rs赋值给Datagrid控件,执行之后,会产生,行集合不能作为标签的错误,Set DataGrid1.DataSource = rs这句有问题
      

  10.   

    Set rs = cmd.Execute(, Param)这个不行。必须是打开的记录集对象。rs.Open SQL, cnn
    Set DataGrid1.DataSource = rs
      

  11.   

    如果要输入参数的话,SQL语句根据参数查询
    rs.Open SQL, cnn 
    Set DataGrid1.DataSource = rs
    该如何写?
      

  12.   

    SQL = "SELECT * FROM MES_View01 WHERE JZ= 'combo1.text' AND BLM= 'txt1.text' AND RQ= 'txt2.text'"rs.ActiveConnection = cnn
    rs.CursorLocation = adUseServer
    rs.Open SQL, cnn, adOpenKeyset, adLockReadOnlySet DataGrid1.DataSource = rs
            DataGrid1.Refresh 为何根据参数查询出来只有列标题,而没有内容,SQL语句需要输入的参数的地方有问题?