我在需要对数据库一个表项进行查询,例如:
id name
1 王刚
2 李明
3 王刚
4 赵丁
对name进行查询,看看每个人在数据库中出现在的次数。程序如下: Dim db As Database
Dim rs As Recordset
Dim n As Integer
Dim sqlstr As String '存放查询语句
Set db = OpenDatabase(App.Path & "\db1.mdb")
sqlstr = "select * from log where name='王刚'"
Set rs = db.OpenRecordset(sqlstr)
rs.MoveLast
MsgBox rs.RecordCount 以上代码可以得到一个人在数据库中出现的次数,可当我的人数增加到58个的时候,不可能再用58次select * from log where name='××'了。
还请各位请教,如果我想得到个人姓名在数据库中出现的次数时,该如何操作。我暂时用的是DAO连接数据库。感谢!
id name
1 王刚
2 李明
3 王刚
4 赵丁
对name进行查询,看看每个人在数据库中出现在的次数。程序如下: Dim db As Database
Dim rs As Recordset
Dim n As Integer
Dim sqlstr As String '存放查询语句
Set db = OpenDatabase(App.Path & "\db1.mdb")
sqlstr = "select * from log where name='王刚'"
Set rs = db.OpenRecordset(sqlstr)
rs.MoveLast
MsgBox rs.RecordCount 以上代码可以得到一个人在数据库中出现的次数,可当我的人数增加到58个的时候,不可能再用58次select * from log where name='××'了。
还请各位请教,如果我想得到个人姓名在数据库中出现的次数时,该如何操作。我暂时用的是DAO连接数据库。感谢!
然后
sqlstr = "select * from log where name='" & text1.text & "'"
sqlstr = "select count(*) from log where name='" & text1.text & "'"
strSQL = _T("select count(*) as Mycount from table where ......");
rs.Open(CRecordset::dynaset,strSQL);
CString str;
rs.GetFieldValue("MyCount", str);
str里装的就是个数
Dim rs As new Recordset '要用new實例化一個紀錄集
Dim n As Integer
Dim sqlstr As String '存放查询语句
Set db = OpenDatabase(App.Path & "\db1.mdb")
sqlstr = "select count(id) as DispTimes,name from log group by name"
Set rs = db.OpenRecordset(sqlstr)
if not rs.eof then
rs.movefirst
'循環讀取紀錄集
for n=1 to rs.recordcount msgbox rs.fields("name") & "出現過" & rs.fields("disptimes") & "次"
rs.movenext '紀錄集下移到下一條紀錄
next n
end if
if cbool(rs.state) then rs.close '釋放紀錄集
set rs=nothing
怎么解决!!在FORM上加个TEXTBOX是觉得不可取的。因为后台自己操作的不能老依靠前台来解决。
还有“群子”的 select name,count(*) from log group by name 小弟实在是不明白,那么下一步怎么得到每个人名的出现次数呢,请给个详细的代码实例。
Set rs = db.OpenRecordset(sqlstr)
提示有错误!!!
两个都是name吗,DispTimes前面不用定义了吗???
还有没有rs.state这一项!????
rs.?????不会写了,指点指点??
debug.print rs.flends("name") & " " & rs.flends("n")
next
debug.print rs.flends("name") & " " & rs.flends("n")
rs.movenext '少写了一句
next
sqlstr = "select count(id) as DispTimes,name from log group by name"
这一句中count(id)改为count(*)群子的:
sqlstr = "select name,count(*) from log group by name"
Set rs = db.OpenRecordset(sqlstr)
rs.Fields(0)为个人姓名
rs.Fields(1)为出现的次数
dim db as Database
dim rs as Recordset
dim sqlstr as String
Set db = OpenDatabase(App.Path & "\db1.mdb")
sqlstr = "select name,count(*) from log group by name"
Set rs = db.OpenRecordset(sqlstr)
for i = 0 to rs.recodcount -1
msgbox rs.Fields("name")&rs.Fields(1)
rs.MoveNext
Next
end sub
可是还有一个问题。为什么rs.Fields(1)能得到出现次数???
自然就是出现的次数了嘛