建议:打开recordset时不要用res.Open "select * from cd ORDER BY cd_id DESC", conn, 3, 1而应为
rs.Open strSql, Conn, adOpenStatic, adLockReadOnly
把sql语句放入一个string中,尽量不要写阿拉伯数字,写常数变量。
connection默认cusorlocation为aduseserver,如果不追求速度,尽量用aduseclient,你不能显示可能是因为没有把datagrid的具体的每一列与recordset绑定,自己查查datagrid的属性
最简单的办法:
1-ado控件使用一种Select语句找出数据。
2-在DBGrid1控件的HeadClick事件中,写如下代码
On Error R
On Error Resume esume Next
Adodc1.recordset.Sort=Dbgrid1.collums(Colindex).DataFields.Name
这样做后,数据是找到了,可就是不能在网格内显示,是不是还缺什么东西???
Dim conn As New adodb.Connection
Dim res As New adodb.Recordset
If conn.State = adStateOpen Then
conn.Close
End If
conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" _
& "Data Source=" & App.Path & "\db.mdb;Jet OLEDB:database ")
'conn.CURSORLACTION = LOCALCLIENT
'conn.CursorLocation = adUseClient
conn.CursorLocation = adUseServer
If res.State = adStateOpen Then
res.Close
End If
res.Open "select * from cd ORDER BY cd_id DESC", conn, 3, 1
to:sys_wkq(吴克青)
谢谢,我按照你说的改了一下,可是还有错
Private Sub Command2_Click()
Dim conn As New adodb.Connection
Dim res As New adodb.Recordset
If conn.State = adStateOpen Then
conn.Close
End If
conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;" _
& "Data Source=" & App.Path & "\db.mdb;Jet OLEDB:database ")
conn.CURSORLACTION = LOCALCLIENT
If res.State = adStateOpen Then
res.Close
End If
res.Open "select * from cd ORDER BY cd_id DESC", conn, 3, 1
With DataGrid1
Set .Recordset = res----------错误提示:未找到方法或数据成员
End With
End Sub
dim conn as new adodb .connection
dim res as new adodb.recordset
if conn.state =adstateopen then
conn.close
end if
conn.open "your connectionstring"
CONN.CURSORLACTION=LOCALCLIENT
if res.state=adstateopen then
res.close
end if
res.open "select * from SPXX ORDER BY ( YOUR FIELDS) DESC",CONN,3,1
WITH DBGRID1
SET .RECORDSET =RES
END WITH
-----------------------------------
关键语句在于SQL: ORDER BY DESC | ASC