首页编程recordcount?vb中关于RecordCount的问题

recordcount?vb中关于RecordCount的问题

编程之家2023-11-0773次浏览

亲爱的读者们,你是否对recordcount和vb中关于RecordCount的问题的相关问题感到困惑?别担心,今天我将为你解答这些问题,让你对此有更清晰的认识。

recordcount?vb中关于RecordCount的问题

delphi query.recordcount 总是为-1,请教!

其实这不是Delphi的bug,在一次查询显示中,如果数据记录数目大于能显示的数目(DBGrid)时,就会Query.recordcount=-1,这是数据并没有完全载入本地,当程序操作数据时,才会继续从数据库载入;所以这只是Delphi数据查询的优化。要得到准确的记录数你可以采用使用两种方法:1。Query.last;Query.first,然后Query.recordcount就可以得到正确值(数据很大时这样做效率很低);2。新增一条查询语句,用以统计记录数目。

vb中关于RecordCount的问题

recordcount是adodc控件的一个属性,其含义是统计表中的记录条数。

例如,若recordcount=0则说明是空表。

你的源程序的功能是:

判断表中记录条数是否为空,若不为空则执行删除操纵,否则不删除。

很容易理解的,当你的表中没有记录时删除操作根本无法执行下去,言外之意if语句的功能就是防止你不停删除记录。

recordcount?vb中关于RecordCount的问题

rec.RecordCount 结果为1,急

使用DAO访问记录集的RecordCount属性要特别小心。RecordCount所返回的记录行数并不一定代表表中的实际记录行数,因为不同的游标类型、记录集类型和记录集填充时机,RecordCount所返回的行数会有很大不同。

楼主图中所打开的记录集类型是动态集(dbOpenDynaset),对于这种类型的记录集,要将所有记录行都填充到记录集后(使用Rs.MoveLast方法)其RecordCount才能返回真实的记录行数。只是取出ACCESS表中的数据输出到EXCEL中不建议使用动态类型记录集,而应使用表类型记录集,这样无需使用MoveLast方法即可获取准确的记录行数。

另外原代码里的For循环语句里没有移动记录集当前位置的代码,自然就只能将第一行中的数据输出到EXCEL中,其它行中的数据也就无法取出。

建议使用“表类型”数据集打开数据表,代码修改如下:

'......以上代码略

Setrec=DB1.OpenRecordset(my_sql)'注意没有使用dbOpenDynaset

recordcount?vb中关于RecordCount的问题

Ifrec.RecordCount>0Then

rec.MoveFirst

Fori=0torec.RecordCount-1

Sheet5.Range("A"&i+2),Select

ActiveCell.FormulaR1C1=rec.Fields("user").Value

Sheet5.Range("B"&i+2),Select

ActiveCell.FormulaR1C1=rec.Fields("Password").Value

rec.MoveNext'记录移动到下一行

Nexti

EndIf

rec.Close

DB1.Close

ExitSub

EndSub如果代码运行有问题,请发追问。

关于rs.RecordCount和rs.fields(0).value

首先纠正你的一个错误认识:

rs.fields(0).value是用来返回记录集rs当前位置第一个字段的值,而不是用来返回记录总数;

而rs.RecordCount是真正用来返回记录总数的。

你的SQL语句中用到了COUNT(*)函数,该函数返回符合查询中指定的搜索条件的行的数目,而不消除重复值。它对每行分别进行计数,包括含有空值的行。

因此,你的rs最终返回的只有一条记录,而该记录的内容是符合 duzheno='ben'条件的记录总数。

因此,用rs.fields(0).value获得的是符合 duzheno='ben'条件的记录总数,而不是rs的总数,rs总数只有1;rs.RecordCount=1是正确的。

你把第二段代码这样改写一下的话,两段代码的执行效果就会一样了:

<%

sql="select tushuno from borrow"

'sql=sql+" where duzheno='ben'"

Set rs1= Server.CreateObject("ADODB.Recordset")

rs1.open sql,conn,1,1

d=rs1.RecordCount

%>

<%=d%>

文章分享到这里,希望我们关于recordcount和vb中关于RecordCount的问题的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。

oraclenumber Oracle中的number(10,0)是什么意思mssql数据库(mssql数据库是什么)