已经打开了一个ado连接,可以对他进行查询,查询结果要显示在datagrid控件里面
如果这个查询结果在设计时就能确定的话,可以修改datagrid空间的datasource就可以了
但是我现在要在运行过程中允许用户构造一个sql语句,这个的查询结果怎么显示在datagrid中呢?
如果这个查询结果在设计时就能确定的话,可以修改datagrid空间的datasource就可以了
但是我现在要在运行过程中允许用户构造一个sql语句,这个的查询结果怎么显示在datagrid中呢?
objCmd.CommandText = "select ...from...where...."
Set objRst = objCmd1.Execute
Set DataGrid.DataSource = objRst 'DataGrid是你的DataGrid控件的名字,objRst是ADO的recordset对象
rs.open "select * from table"
set datagrid.datasource=rs
rs.close
rs.open "select * from table",conn
set datagrid.datasource=rs
rs.close
Private Conn As New ADODB.ConnectionPrivate Sub Form_Load()
Dim strConn As String
' 连接数据库的字符串
' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password='您的密码'
' 连接Access97数据库需要使用Jet.OLEDB.3.5,Access2K和以上数据库使用Jet.OLEDB.4.0
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"
' 使用客户端数据游标
Conn.CursorLocation = adUseClient
' 打开Access的连接
Conn.Open strConn
' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close
' Recordser打开表People
Rs.Open "Select * from People", Conn, adOpenKeyset, adLockOptimistic
' 报告出 一共多少笔数据,测试是否存在数据
' MsgBox Rs.RecordCount
' 绑定进DataGrid
Set DataGrid1.DataSource = Rs
End Sub
顺便问一下,如果recordset中某一行数据的某一列为空,在vb中引用他就会出错,我用not isnull怎么不能判断出来那个为空呢?大家帮我看看这个问题,一会儿就结贴
text1.text=Trim(rs(0)& "")
加个空格就行了