执行如下代码出现问题: Private Sub Combo1_Click()   str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\aa\data.mdb;Persist Security Info=False"
   Set adcon = New ADODB.Connection
   adcon.Open str
   
   str = "SELECT * FROM" & Chr(34) & Combo1.Text
   Set rs = New ADODB.Recordset
   rs.Open str
   
   Set DataGrid1.DataSource = rs
   
   Adodc1.RecordSource = str
   
  Adodc1.Refresh
   
  DataGrid1.DataSource = Adodc1
   
End Sub
问题为:未找到方法或数据成员。 
请问该如何解决?

解决方案 »

  1.   

    Private Sub Combo1_Click()   str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\aa\data.mdb;Persist Security Info=False"
       Set adcon = New ADODB.Connection
       adcon.Open str
       
       str = "SELECT * FROM" & Chr(34) & Combo1.Text
       Set rs = New ADODB.Recordset
       rs.Open str
       
      set Adodc1.RecordSource = rs
       
      Adodc1.Refresh
       
      DataGrid1.DataSource = Adodc1
       
    End Sub
      

  2.   

    前提是你str = "SELECT * FROM" & Chr(34) & Combo1.Text这句话是对的~
    "SELECT * FROM" 最好是改为 "SELECT * FROM " 这样的话,会是正规的SQL语句否则FROM会和内容连在一起,那样就是错误的了~
      

  3.   

    给你一个使用adodb的例子:
    1、建立连接。
    dim Conn as ADODB.connection
    With Conn
        
            If .State = adStateOpen Then
                .Close
            End If
            
            .CursorLocation = adUseClient
            .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" _
                & strFileName
            .Open
        End With2、打开记录集
    dim SQL as string
    SQL = "select * from " & strTable
    dim Rs as ADODB.recordset
        
        With Rs
            If .State Then
                .Close
            End If
            
           .CursorLocation = adUseClient
            .Open SQL, Conn, adOpenDynamic, adLockBatchOptimistic
        End With
    3、设置数据源    Set datagrid.DataSource = Rs
      

  4.   

    直接把记录集rs赋给DataGrid1控件的DataSource不就得了吗,为什么还得用ADODC控件呢?像下边这样不更好吗?
    Private Sub Combo1_Click()   str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\aa\data.mdb;Persist Security Info=False"
       Set adcon = New ADODB.Connection
       adcon.Open str
       
       str = "SELECT * FROM" & Chr(34) & Combo1.Text
       Set rs = New ADODB.Recordset
       rs.Open str
       
       set DataGrid1.DataSource= rs
        
    End Sub
      

  5.   

    楼上的,我试了一下,还是不行。
     我的目的是在Combo1中选择一个表后,在DataGrid中显示出表的内容!  请大家继续帮忙解答!
      

  6.   

    Adodc1.RecordSource = str加 SET
      

  7.   

    你把 str="SELECT * FROM"&Chr(34)&Combol.Text
    改成 str="SELECT * From "&Combol.text试试 再有你的Combol框中的text到底是不是表的名字,你最好弄清楚
      

  8.   

    看看这个行不,我原来做的:
    ‘模块
    Public conn As New ADODB.Connection
    Public rst As New ADODB.Recordset
    Public sql As String, cn As String'窗体
    Private Sub Form_Load()
       cn = "dsn=mis;uid=sa;pwd=;"
       conn.Open cn
    End SubPrivate Sub Combo3_Click()
       If Combo3.Text = "订料入仓" Then
            If rst.State Then rst.Close
            sql = "select inid as 入仓单号,orderid as 订单号码,indate as 日期,intime as 时间,custname as 客户名,depot as 仓库,amount as 数量,houseman as 仓管 from mis_depotsyle where insyle='" & Trim(Combo3.Text) & "'"
            rst.Open sql, conn, adOpenKeyset, adLockPessimistic
            Set DataGrid1.DataSource = rst
       ElseIf Combo3.Text = "客户退回" Or Combo3.Text = "成品入仓" Or Combo3.Text = "退料入仓" Or Combo3.Text = "其它入仓" Then
                       Call database
       ElseIf Combo3.Text = "生产领料" Or Combo3.Text = "补料" Or Combo3.Text = "退料" Or Combo3.Text = "加工商领料" Or Combo3.Text = "其它领料" Then
                      Call databaseout
       End If
    End Sub
    Public Sub database()
                    If rst.State Then rst.Close
                    sql = "select inid as 入仓单号,indate as 入仓日期,intime as 时间,custname as 客户名,depot as 仓库,amount as 数量,houseman as 仓管 from mis_depotsyle where insyle='" & Trim(Combo3.Text) & "'"
            rst.Open sql, conn, adOpenKeyset, adLockPessimistic
                   If rst.EOF = False Then
                       Set DataGrid1.DataSource = rst
                    Else
                       MsgBox "没有数据!", vbExclamation, "没有数据!"
                   End If
    End Sub
    Public Sub databaseout()
                    If rst.State Then rst.Close
                    sql = "select outid as 出仓单号,outdate as 出仓日期,outtime as 时间,custname as 客户名,depot as 仓库,amount as 数量,inmate as 领料人,houseman as 仓管 from mis_depotsyleout where outsyle='" & Trim(Combo3.Text) & "'"
            rst.Open sql, conn, adOpenKeyset, adLockPessimistic
                   If rst.EOF = False Then
                       Set DataGrid1.DataSource = rst
                    Else
                       MsgBox "没有数据!", vbExclamation, "没有数据!"
                   End If
     End Sub
      

  9.   

    用调试器看一下RS的值,是不是没有得到RS记录
      

  10.   

    不要用Adodc1这个控件了,直接把COMBO的TEXT给SQL,然后执行后在记录集给DATAGRID就可以了