两个问题。。。
1。如何把一个数据库中特定的数据加入ComboBox的list项中,(我是用data控件连接
一个mdb数据库,combo的控件在运行时其下拉列表应显示数据库的数据列)。
2。如何动态运行数据库,对recordset进行操作,(我用过adodc,它好象不能进行汇总,如count,sum等等).
以上问题请给出例子程序。
问题点数:130、回复次数:6Top
1 楼SANVII()回复于 2000-04-12 21:00:00 得分 0
哦,我看到lin.929.un1.csdn众高手了,帮帮我。多谢多谢!!!Top
2 楼Un1()回复于 2000-04-12 21:37:00 得分 65
这是MSDN的ADO教程部分:
Public Sub main()
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
' 步骤 1,创建一个数据连接
conn.Open "DSN=pubs;uid=sa;pwd=;database=pubs"
' 步骤 2,设置数据命令
Set cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * from authors"
' 步骤 3,打开数据
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockBatchOptimistic
' 步骤 4,内容可选,看你的需要
rs!au_lname.Properties("Optimize") = True
rs.Sort = "au_lname"
rs.Filter = "phone LIKE '415 5*'"
rs.MoveFirst
Do While Not rs.EOF
Debug.Print "Name: " & rs!au_fname & " "; rs!au_lname & _
"Phone: "; rs!phone & vbCr
rs!phone = "777" & Mid(rs!phone, 5, 11)
rs.MoveNext
’可以再此把字段加入到Combox
Combo1.AddItem rs("au_fname")
Loop
End Sub
Top
3 楼SANVII()回复于 2000-04-12 21:56:00 得分 0
关于问题1。我是
for i = data1.recordset.bof to data1.recordset.eof
combo1.additem (i)
next
但VB提示data1.recordset未说明,能指点我吗?Top
4 楼SANVII()回复于 2000-04-12 22:12:00 得分 0
关于问题2。我是在form_load中设
adodc.recordsource="select * from table"
然后我想再次查询,sql语句为"select count(A),sum(B) from table
where X=X group by C",但msHflexgrid不能显示(或者是adodc出错?)
另不能用“with club"这种sql语法。。。。。。Top
5 楼SANVII()回复于 2000-04-13 21:27:00 得分 0
我在静静的等,可我也等得很久了。能否给我看看我错在哪?Top
6 楼major2()回复于 2000-04-14 00:21:00 得分 65
观于你最后的提问,可能这个对你 有点用:
一、用做MSHFLEXGRID的数据源的记录集不能用ADODB.RECORDSET,而是要这样写才行:
Dim rs as ADODB.Recordset
set rs=new recordset '注意,这里不能加ADODB.这样的限定,一定要象这样写
rs.cursorlocation=adUseClient
rs.cursortype=adreadonly
rs.locktype=addynamic
二、您的SQL语句写得好象有点问题,反正我是看不懂里面那句X=X的WHERE子句是干什么用的,还有COUNT(A)是不是应该写成COUNT(C)或者干脆就是COUNT(*)
三、如果你用的是SQL SERVER的数据库,那么WITH CUBE肯定是可以用的,ACCESS就不清楚了,请你自己查一下在线帮助。但是用了以后会在统计行里出现NULL值,所以不能直接用做MSHFLEXGIRD的数据源,否则会出现“非法使用NULL值”的错误,要使用ISNULL()函数先将那些NULL值变成有效的数据才能绑定到网格里面去。Top




