把datagrid 控件绑定到ado 控件,通过ado 空间的RecordSource 来刷新 记录。
 Private Sub Command1_Click()dim strquery as stringstrquery="Select * from [sheet1$]", objConn, adOpenStatic
    form1.Adodc1.RecordSource = strquery
    form1.Adodc1.Refreshadodc1  的connectionstring 制定数据源
datagrid 的datascource 绑定到adodc1

解决方案 »

  1.   

    我的本意是不想用ADO控件,实在没法,也只好用一用。
    但是:象楼上所说的,ADO控件又有自已的connectionstring ,可它的RecordSource又是从ADO对象objConn那儿取得,这样我觉得有点相互矛盾。实验表明这好象也是行不通的。
    请问woneinwy(没有) :你能否给出一个完整的connectionstring的表达式呢?
    我觉得这是问题的关键所在!
    谢谢!
      

  2.   

    adodc 的connectionstring 属性: Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=;Initial Catalog=数据库名;Data Source=服务器名
      

  3.   

    adodc 的recordsource  属性可以是你自定义的Sql 语句
      

  4.   

    to  woneinwy(没有) 请问上面语句中的:“数据库名”与“服务器名”在实际情况下应用什么字符代替呢?我试了几种,都不行啊?
    to feixuehenshui(飞雪恨水) :谢谢你的好意!请各位继续关注!多谢!
      

  5.   

    Dim objConn As ADODB.Connection
    Dim objRst As ADODB.Recordset
    Set objConn = New ADODB.Connection
    Set objRst = New ADODB.Recordset
    With objConn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .Properties("Extended Properties").Value = "Excel 8.0"
            .Open App.Path + "\pw.xls"
    End With
    objConn.CursorLocation = adUseClient    '<----
    objRst.Open "Select * from [sheet1$]", objConn, adOpenStatic
    Set datagrid1.DataSource = objRst  
    datagrid1.Refresh
      

  6.   

    to  hycao(海草) :你真是太历害了。
    请问好关键的一句是什么含议呢?为保少了他就不行?
    多谢!!
      

  7.   

    我觉得是你没在意是服务器做还是客户端,一般情况objConn.CursorLocation = adUseClient  (这种类型)是要设的!
      

  8.   

    具体的我也不清楚,大致是因为CursorLocation的默认值是adUseServer(服务器的游标位置),此时服务器只是把数据返回给recordset对象;而如果要把查询得到的数据返回客户端并能在客户端浏览recordset对象,则要把CursorLocation的值设为adUseClient(客户端的游标位置)。
      

  9.   

    Set datagrid1.DataSource = objRst  
    好用吗?我觉得不好用
      

  10.   

    1很简单,Select * from [sheet1$],当然用odbc
    2可以将其转换为access或sqlserver更爽
      

  11.   

    to  liyihongcug(lili) :
    你说的两点都颇有吸引力,但如何具体实现呢?能请你讲一讲吗?多认帐各位!
      

  12.   

    我原以为用VB控件打开EXCEL表格就这么搞定了,但是现在出现一个新情况:
    一张普通的十几个字段的表用ADO打开是问题,但如果那张表的列数达到几百个时,程序运行时,提示:定义了过多的字段。从而无法运行下去!请教各位高手:有什么合理的方法可解决这个问题吗?多谢!!
      

  13.   

    可是我没有用过VBA啊?
    各位能提供一点相关的网址和经验吗?谢谢!
      

  14.   

    谢各位,结帐!请各位关注我的新问题:如何在VBA中实现查询符合条件的行?