Dim cnn As New ADODB.Connection
      cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\database\communications.mdb;Persist Security Info=False"
       cnn.Open
       MsgBox cnn.State, , "cnn.state"
   Dim rs As New ADODB.Recordset
   Dim strSex As String
   strSex = "select * from friends where [sex]='" & Trim(tempuser) & "'"
   MsgBox strSex
   rs.Open strSex, cnn, adOpenKeyset, adLockReadOnly
   MsgBox rs.State, , "rs.state"
   Set dgd_Sex.DataSource = rs  ‘datagrid空件
数据库和记录集都可以打开;却不显示结果

解决方案 »

  1.   

    1,确认数据库中有没有符合条件的记录存在
    2,将datagrid控件改成msflexgrid控件试试
      

  2.   

    '为客户端游标
      Rs.CursorLocation = adUseClient
      rs.Open strSex, cnn, adOpenKeyset, adLockReadOnly
      Set dgd_Sex.DataSource = rs
      

  3.   

    加一句:
    rs.CursorLocation =adUseClient 
    就能了
      

  4.   

    是的,你漏了声明游标了
    加上
    rs.CursorLocation = adUseClient就行了,我也曾被这个问题困扰多时
      

  5.   

    相当于指针
    如果,你不加游标也行,但,要用msflexgrid控件(我第一次就时这样解决的)或者,不要用动态关联数据库
    Dim cnn As New ADODB.Connection
          cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\database\communications.mdb;Persist Security Info=False"
    这句,改为
    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordsetcon.Open "DSN=SQLDb;UID="",PWD="""  'ODBC数据库别名SQLDb
    rs.Open "select * from sc, con, adOpenKeyset, adLockOptimisticODBC可以用api动态配置
    声明部分
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    使用部分
    If SQLConfigDataSource(0, 1, "Microsoft Access driver (*.mdb)", "dsn=SQLDb;description=用户数据源;dbq=" & SetFilePath & ";fil=MicrosoftAccess;defaultDIR=" & SetFilePath) = False Then
    MsgBox "设置数据源出错!", , "错误"
    End
    End If
      

  6.   

    问题解决了;谢谢大家了
    真是热心人啊;csdn就需要你门这样的人