有以下代码
Private Sub Form_Load()
Dim str As String
str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\s.mdb;Persist Security Info=False"
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open str
rst.Open "s", cnn
Set DataGrid1.DataSource = rst
End Sub为何数据没有在Datagrid1中显示出来

解决方案 »

  1.   

    不要在Form_Load()事件中,改在Form_Activate()事件中
      

  2.   

    rst.Open "s", cnn"s"是什么东东
      

  3.   

    无论是在Form_Load()事件中还是在Form_Activate()事件中都不行
      

  4.   

    '在"cnn.Open str"前加上这一句试试,不行再说cn.CursorLocation = adUseClient
      

  5.   

    itxxx大哥真行,能不能告诉我为什么要加这一句啊
      

  6.   

    DataGrid的正确使用方法是将其与一个ADODC关联,在ADODC中设定数据源.
    你的那段代码应该在
    Set DataGrid1.DataSource = rst
    这句话报错,是吧?
      

  7.   

    在Microsoft.Jet.OLEDB.4.0下,不支持Set DataGrid1.DataSource = rst
    只有在Microsoft.Jet.OLEDB.3.51才支持Set DataGrid1.DataSource = rst
    但是Microsoft.Jet.OLEDB.3.51不支持ACCESS2000.
      

  8.   

    不是 而是没有数据显示在datagrid中 但用ado控件连就没这个问题
      

  9.   

    DataGrid是可以与ADO对象一起用的Microsoft.Jet.OLEDB.4.0下,“Set DataGrid1.DataSource = rst”,我已调试过是可以的。将ADO连接的CursorLocation属性设置为客户端,也就是使用由本地游标库提供的客户端游标,默认值“adUseServer ”是使用数据提供者或驱动程序提供的游标,而本地游标引擎通常允许使用的许多功能可能是驱动程序提供的游标无法使用的,具体可参看MSDN
      

  10.   

    《str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\s.mdb;Persist Security Info=False"》
    你用连接对象,连接了一个叫”s.mdb“,数据库。
    但是你要在记录集对象里,打开一个表,这样在网格控件里才能显示。rst.Open "表名", cnn
    Set DataGrid1.DataSource = rst