我的c:\下有MyTest.mdb数据库,其中里面有一个表:tb
请问如何在vb下得到一个数据集,并显示在DataGrid里?我的代码:弹出错误窗体,但是没有错误信息!大家看看,我该怎么修改?
Sub Check()
  Dim MyCon As New ADODB.Connection
  Dim MyRs As New Recordset
  Dim ConStr As String
  ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyTest.mdb"
  On Error GoTo Error:
  MyCon.ConnectionString = ConStr
  MyCon.CommandTimeout = 0
  MyCon.Open
  MyRs.ActiveConnection = MyCon
  Dim MySqlStr As String
  MySqlStr = "select * from tb" 
  MyRs.Open MySqlStr
  Set DataGrid1.Datasource=MyRs
Error:
  MsgBox Err.Description, vbOKOnly, "Error Message"
End Sub

解决方案 »

  1.   

    Sub Check()
      Dim MyCon As New ADODB.Connection
      Dim MyRs As New Recordset
      Dim ConStr As String
      ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyTest.mdb"
      On Error GoTo Error:
      MyCon.ConnectionString = ConStr
      MyCon.CommandTimeout = 0
      MyCon.Open
      MyRs.ActiveConnection = MyCon
      Dim MySqlStr As String
      MySqlStr = "select * from tb" 
      MyRs.Open MySqlStr
      Set DataGrid1.Datasource=MyRs
    exit sub
    Error:
      MsgBox Err.Description, vbOKOnly, "Error Message"
    End Sub
    缺少exit sub
      

  2.   

    Dim MyRs As New ADODB.Recordset
      

  3.   

    大家都用什么DataGrid啊?我现在代码改为:
    Sub Check()
      Dim MyCon As New ADODB.Connection
      Dim MyRs As New Recordset
      Dim ConStr As String
      ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyTest.mdb"
      On Error GoTo Error:
      MyCon.ConnectionString = ConStr
      MyCon.CommandTimeout = 0
      MyCon.Open
      MyRs.ActiveConnection = MyCon
      Dim MySqlStr As String
      MySqlStr = "select * from tb" 
      MyRs.Open MySqlStr
      Set DataGrid1.Datasource=MyRs    --这句报错误,说没有DataSource,但是明显是有这个方法的啊
      DataGrid1.Refresh 
    exit sub  --加了这句
    Error:
      MsgBox Err.Description, vbOKOnly, "Error Message"
    End Sub
      

  4.   

    Sub Check()
      Dim MyCon As New ADODB.Connection
      Dim MyRs As New Recordset
      Dim ConStr As String
      ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyTest.mdb"
      On Error GoTo Error:
      MyCon.ConnectionString = ConStr
      MyCon.CommandTimeout = 0
      MyCon.Open
      MyRs.CursorLocation = adUseClient '定义为本地游标
      MyRs.ActiveConnection = MyCon
      Dim MySqlStr As String
      MySqlStr = "select * from tb" 
      MyRs.Open MySqlStr
      Set DataGrid1.Datasource=MyRs    --这句报错误,说没有DataSource,但是明显是有这个方法的啊
      DataGrid1.Refresh 
    exit sub  --加了这句
    Error:
      MsgBox Err.Description, vbOKOnly, "Error Message"
    End Sub
      

  5.   

    可以带出.Datasource的,但是执行的时候就报错:
    说什么,行集合不能作为标签?
      

  6.   

    多谢几位
    差这句:MyRs.CursorLocation = adUseClient '定义为本地游标结帖
      

  7.   

    最后一点点,能否设置DataGrid的每列的宽度自适应呢?
    因为有的列长度很短,显示时有点不爽
      

  8.   

    DataGrid1.Columns(1).Width = 100
      

  9.   

    MyRs.Open后面加参数,指定游标类型