用VBA连接ACCESS数据库不显示,该怎么解决

用VBA连接ACCESS数据库不显示
各位好,我是VBA初学者,有个问题想请教一下:
我用VBA连接ACCESS2007数据库,想用MSHflexgrid显示,但是显示不出来,也没有报错,下面是我的代码,哪位高手帮我看看,不胜感激
Public conn As ADODB.Connection
Public rssearch As ADODB.RecordSet


Private Sub search_Click()
  Dim mydata As String, mytable As String
  Dim strSQL As String
  Set rssearch = New ADODB.RecordSet
  mydata = "D:\分析\煤制油.accdb"
  mytable = "各省指标量"
  strSQL = "select* from 各省指标量"
  Set conn = New ADODB.Connection
  With conn
  .Provider = "microsoft.ACE.oledb.12.0"
  .Open mydata
  End With
  
  rssearch.CursorLocation = adUseClient
  rssearch.LockType = adLockOptimistic
  rssearch.ActiveConnection = conn
  Set rssearch = conn.Execute(strSQL)
End Sub

Private Sub show_Click()
  Set results.rs = rssearch
  results.show vbModal
End Sub


Public rs As ADODB.RecordSet

Private Sub results_activate()
  Dim i As Integer
  Dim j As Integer
  MSHFlexGrid1.Clear
  MSHFlexGrid1.Rows = rs.RecordCount + 1
  MSHFlexGrid1.Cols = rs.Fields.Count
  For j = 0 To rs.Fields.Count - 1
  MSHFlexGrid1.TextMatrix(0, j) = rs.Fields(j).Name
  MSHFlexGrid1.ColWidth(j) = 1.5 * textwidth(rs.Fields(j).Name)
  Next j
  For i = 0 To rs.RecordCount - 1
  For j = 0 To rs.Fields.Count - 1
  If Not IsNull(rs.Fields(j).Value) Then
  MSHFlexGrid1.TextMatrix(i + 1, j) = rs.Fields(j).Value
  End If
  Next j
  rs.MoveNext
  Next i

End Sub

------解决方案--------------------
VB code
'这样试试
Private Sub search_Click() 
  Dim mydata As String, mytable As String 
  Dim strSQL As String 
  Set rssearch = New ADODB.RecordSet 
  mydata = "D:\分析\煤制油.accdb" 
  mytable = "各省指标量" 
  strSQL = "select* from 各省指标量" 
  Set conn = New ADODB.Connection 
  With conn 
        .Provider = "microsoft.ACE.oledb.12.0" 
        .Open mydata 
  End With 
  rssearch.CursorLocation = adUseClient 
  if rssearch.state<>adstateclosed then rssearch.close
  rssearch.open strsql,conn,adopenkeyset,adlockreadonly
  set mshflexgrid1.datasource=rssearch
  rssearch.close
End Sub

------解决方案--------------------
检查数据库表中是否有记录
------解决方案--------------------
单步跟一下,尤其是在 MSHFlexGrid1.TextMatrix(i + 1, j) = rs.Fields(j).Value 这里,看看有没有内容被取出来, 如果没有,则看看前面数据库连接设置对不对,然后看看数据库字段的名称、属性看看有没有不对的;如果上面一句有数据,而电子表格里面没显示,那就重点检查电子表格的属性设置吧。

总之,帮楼主顶一下~~~