vb 如何清除dataGrid已经显示的内容

vb 是通过ado编程实现,然后set dataGrid.recordSource=rs
我是多个查询共用一个dataGrid,但是一个查询后转到另一个查询界面时,DataGrid保留有上次查询出来的数据,不知道怎么清除掉?
看了下MSDN,上面说object.ClearFields可以复位,但是用后好像没甚么反映,请VB高手指点!
根据retty85 的提供的答案,找到了清除DataGrid数据的可行方法:
Set DataGrid1.DataSource = Nothing
不过retty85 的提供的答案是set dataGrid.recordSource=nothing
,应该把recordSource改成DataSource
retty85的思路还是正确的

VB可使用Nothing
关键字用于取消某对象变量与实际对象的关联。使用 Set 语句将对象变量赋值为 Nothing。

例如:

Set MyObject = Nothing
多个对象变量可以引用同一个实际对象。当 Nothing 赋值给某对象变量后,此变量就不再引用任何实际对象。当多个对象变量引用同一个对象时,只有在所有对象变量都设置为 Nothing (在设置为Nothing的最后一个对象变量超出范围后,显式或隐式地使用 Set
命令)后,与变量所引用的对象相关联的内存和系统资源才被释放。

实现代码:

Option Explicit
    Dim cn As New ADODB.Connection '定义数据库的连接
    Dim rs As New ADODB.Recordset
    
Private Sub Command1_Click()
    Dim sql As String
    sql = "select * from jishijilu" '
    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\wd.mdb;Persist Security Info=False"
    cn.Open
    rs.CursorLocation = adUseClient
    rs.Open sql, cn, adOpenDynamic, adLockOptimistic
    Set DataGrid1.DataSource = rs
End Sub

Private Sub DataGrid1_Click()
    Set cn = Nothing '本句和下一行语句不用实现效果相似
    Set rs = Nothing '
    Set DataGrid1.DataSource = Nothing '本句语句就能实现DataGrid控件清空
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-09-13
set dataGrid.recordSource=nothing
后再按你原来的操作去做本回答被提问者采纳
第2个回答  2007-09-13
adodc1.recordsourse = "select * from 表名 where 条件"
只要把条件设置成不可能的数据就可以了
第3个回答  2007-09-13
你做完一次新的查询之后,加上将DATAGRID所在的窗体刷新的代码试试看!
将me.refresh加上看行不!
第4个回答  2007-09-13
是你帮定错了吧
要不就是刷新
只要把新查询出来的东西在绑到rs 上就应该行了
在看看你有没有
datagrid1.refresh
adobc.refresh
相似回答