我写的查询语句,很简单,只是将表中的所有数据查询并显示出来,但是不知是何原因datagrid显示出来没有任何纪录。代码如下,请各位高手给小妹一点指点!多谢了,我都郁闷死了!
Public rstTMP As ADODB.Recordset
Public comTEST As ADODB.Command
Public conn As ADODB.Connection
Public Sub main()
Set rstTMP = New ADODB.Recordset
Set comTEST = New ADODB.Command
Set conn = New ADODB.Connection
conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"
conn.Open
Form1.Show
End Sub
Private Sub Command1_Click()
sqlstring = "select * from data"
If rstTMP.State = 1 Then
    rstTMP.Close
    rstTMP.Open sqlstring, conn, adOpenKeyset, adLockPessimistic
Else
    rstTMP.Open sqlstring, conn, adOpenKeyset, adLockPessimistic
End If
Set Form2.DataGrid1.DataSource = rstTMP
Form2.Show
End Sub

解决方案 »

  1.   

    Set Form2.DataGrid1.recordset = rstTMP
    看一看
      

  2.   

    或者添加一个ADO data控件(caption为adodc1),设置form2.DataGrid的DataSource为adodc1,把上述代码的Set Form2.DataGrid1.DataSource = rstTMP改为Set Form2.adodc1.recordset = rstTMP.
      

  3.   

    好像datagrid没有recordset这个对象呀?而且以前写的程序都是这样的,没有任何问题,不知这次是怎么了?能不能在我源代码的基础上,帮我找出问题所在呢?谢谢了,我实在是急死了!
      

  4.   

    我的代碼很容易理解的Private Sub Form_Load()
        Dim strConn As String
        Dim pubConn As New ADODB.Connection
        Dim rsTable As New ADODB.Recordset
        Dim strSQL As String    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False"    pubConn.Open strConn    rsTable.CursorLocation = adUseClient
        strSQL = "select  * from TableName"
        rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
        Set DataGrid1.DataSource = rsTable
    End Sub
      

  5.   


    以前我也遇到过,可能是DataGrid的Bug
      

  6.   

    1、设置好datagrid的数据源
    2、在datagrid上右击鼠标选择“检索字段”
      

  7.   

    AC米兰,感谢你的代码!问题解决了!真的不明白,看上去我们的代码原理应该是一样的,可为何我的必须在jet 3.51下才行,而你的在4.0下就可以!
      

  8.   

    conn .CursorLocation = adUseClient '定义客户端游标.要不然,数据无法绑定!!和定义数据引擎 jet 没有太大关系!!
      

  9.   

    本以为问题解决了,可是又出现问题了!我的数据库中的数据有数字型的,文本型的,而现在只能查询数字型的数据,如果查文本型的就报错,说是至少有一个参数未被指定!语句是这样的:select dataname1,dataname2 from data where dataname3=XXX
    而且我还想将dataname3等于的内容根据一个combo控件中的内容进行查询,这可怎么办呀?到底问题出在哪里呢?各位还要帮小妹一把呀!
      

  10.   

    这可能和你的ACCESS数据库有关吧。
    把ADO控件加进去,然后给DATAGRID绑定连接数据源,刷新应该OK。