ACCESS中如何实现提取记录总数的方法
方法1:使用Select语句:SELECT Count(表1.字段1) AS [字段1 之 合计] FROM 表1;
其中:count表示计数;AS [字段1 之 合计]:作为新字段名称;
方法2:使用查询向导-简单查询向导-选定计数字段-汇总-汇总选项-汇总
可用dcount函数取某表的记录数
但ACCESS没有计算数据库所有表 记录总数的功能
前天有人在QQ群里问如何从Access数据库里随机抽取几条记录。这个问题如果放在SQL Server上就比较容易解决,比如随机抽取10条记录,采用的T-SQL语句是:
Select Top 10 * From [SomeTable] Order By NewID()
可以获得很好的效果,但是对于Access数据库而言就没有这么方便了。
在以前我也遇到过这样的问题,当时写一篇整理文字来讨论这个问题。这两天找到了这篇文字重新整理一下放在这里。 采用的Access数据库。总结了几种办法
方法一:有人用如下代码以记录总数为极大值来首先提取出指定数量的随机数,然后以这些随机数做为记录ID。
VBScript代码:
dim n,j
dim su()
dim a,b,k
b=myrs.RecordCount
Randomize
redim su(index_N)
su(1)=Int((b * Rnd) + 1)
for n=2 to index_N
a=Int((b * Rnd) + 1)
for j=1 to n
do while a=su(j)
a=Int((b* Rnd) + 1)
j=1
loop
next
su(n)=a
next
这种方式有一些问题,就是当主键ID不连续的话,有可能某些随机数不存在ID序列当中。另外ID的最大值与总的记录值不一定相等,这样有些记录ID会永远被忽略。
方法二:有人采用一条SQL语句解决此问题
select top 5 * From Table1 order by Rnd()*5
这条语句可以随机从Access数据库中摄取5条记录。但是实际操作中,其生成的记录结果是固定的,失去了随机摄取记录的意义。
方法三:有这样一种方法。
利用随机数生成主键的记录ID
yourstr="*1*3*4*6*12*...."
然后用
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0"
yourstr
可以生成随机数多一点大于所限定抽取的随机数为好。这样可以排除记录不足的情况。
此方法也不太好,而且采用InStr语句,不能利用索引优化,对资源有一定的消耗。
方法四:
代码实现如下:
<%
n=10 ''取任意10条记录
set rs = server.CreateObject ("adodb.recordset")
sql = "select * from table"
rs.open sql,conn,1,1
count=rs.recordcount ''记录总数
IF Count<>empty Then
Randomize
for i = 1 to n ''循环n次
num=Fix(Rnd*count) ''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
rs.move num ''移到改随机行
Response.write rs(0) ''出该条记录
rs.movefirst ''别忘了再把指针移到第一条
next
End IF
rs.close
set rs = nothing
%>
这个方式感觉上比较好些。
方法五:
此方法应该算是比较接近于SQL Server的用法了。
代码:
randomize '得到随机的种子,9999根据你的记录数量级调整,具体调到你出来的记录集随机序列均化
seed=round(rnd*9999)
'以下两种方法都可以,id是主键自增字段
Sql="select id,分值 from table where order by rnd(-"&seed&"-id-"&seed&")"
……
如果还有更好的方法也可以提出来。
做一个数据关联,就像SQL一样,还有种方法就是有做一个界面,例如用VB做,把不同的TEXT连接到不同表,显示出来的效果完全可以达到你的要求。最简单的还是做数据关联。
Select Top 8 * From table order by Rnd(numb),numb是数字型的,一般是序号。得到的记录是随机的,每次都不一样,这个很适用于做考试系统,从题库里选题
access如何实现交叉表多列显示
1. 设计查询:在Access的“查询设计”视图中,选择包含所需数据的表,并将相关字段拖放到设计网格中。使用“总计”行来指定汇总方式,如求和、平均等。2. 设置交叉表:在查询设计器的“属性”窗口中,可以为选定的字段设置“交叉表”属性。将某些字段设置为...
如何在access中实现字段有效性规则的设置
操作方法: (1)鼠标右击对象性,选择 设计视图,进入 设计模式,或 鼠标 单击 右下角的 设计视图 图标 ,直接进入 设计模式... (2)单击 性别字段 的 任意一点,在其 常规选项卡 下 ,找到 有效性规则,并输入:"男" Or "女" (注意:这里的引号,要在英文状态下输入...
access如何实现表的查询?
在表属性的有效性规则中输入[最低储备]<[最高储备]。在表的设计视图中的“效性规则”中写:>n and <n1。update table_name set 库存数量=xxxxx where 主键1=xxx and 主键2=xxxx
ACCESS表中如何实现字段的值既可为输入也可根据公式生成?
在ACCESS表中,可以通过设置字段的默认值来实现字段值既可以手动输入也可以根据公式生成。具体步骤如下:1、创建表格并添加字段 A, B, C;2、选择 C 字段,右键点击“属性”,在默认值栏中输入公式:[A]*(1+[B]);3、选择 A 字段,右键点击“属性”,在默认值栏中输入公式:[C]\/(1+[B])...
如何在 Access 2007 的窗体中实现点击按钮打开另一个窗体???
1、打开一个Access数据库软件,可以打开已创建好的数据库,在【数据库工具】菜单下,鼠标左键单击【空白窗体】按钮。2、接着,在【空白窗体】菜单下,鼠标左键单击【命令】按钮控件,如下图所示。3、然后,在【窗体】窗口中,绘制出命令按钮,可以看到弹出的向导窗口,如下图所示。4、接着,在【向导...
access数据库中如何实现金额数字大小写转换如何实现
回答:楼主是用access做 还是用 其他的工具去处理然后存放到里面了
如何用Access实现Excel中的VLOOKUP函数?
因此,Access中没有类似VLOOKUP的函数。。。在Access中想实现你说的功能,有两种途径可供选择。在说两种途径之前,先对你的表设计提出两点建议:感觉你这样把表B的成绩追加到表A后,表B就无任何存在的意义了!只会造成数据重复,文件增大。另外。你的表B中用姓名来处理数据,由于会出现重名重姓现象,...
在ACCESS里怎么实现VLOOKUP功能。
1、首先,打开ACCESS,单击查询设计,如下图所示,然后进入下一步。2、其次,选择所需的表(或查询),然后单击添加,如下图所示,然后进入下一步。3、接着,建立连接。 例如,在这种情况下,批号是公共字段。 方法是在生产表中按住批号并将其拖到检验表中的批号,如下图所示,然后进入下一步。4...
如何在ACCESS中实现ROUNDUP向上取整或向下取整的函数
[取整字段], 1)>round([取整字段], 0), round([取整字段], 0)+1, round([取整字段], 0))\/\/修改上面的1和0为2和1,可取1位小数向上取整,取其它位数以此类推。向下取整简单, 直接用INT:int([取整字段])\/\/如果要取一位小数就用:int([取整字段]*10)\/10,取其它位数以此类推。
access数据库中,怎么实现两个表的同步?
1.首先打开Access数据库后,建立两个数据表来作为举例。2.建立好数据表以后,点击表可以看到两个表中包含不同的字段内容,如果我们要查询任何一个字段的记录内容,就要将两个表建立起关系,相互关联。选中任何一个表,然后点击工具栏上的视图图标。3.现在切换到设计界面,点击工具栏上的【关系】按钮,...
中韦素安: Select Top 8 * From table order by Rnd(numb),numb是数字型的,一般是序号.得到的记录是随机的,每次都不一样,这个很适用于做考试系统,从题库里选题
河东区15327432389: ACCESS中如何实现提取记录总数的方法?
中韦素安: 做一个数据关联,就像SQL一样,还有种方法就是有做一个界面,例如用VB做,把不同的TEXT连接到不同表,显示出来的效果完全可以达到你的要求.最简单的还是做数据关联. 还有种方法你可以用EXCEL来做,用IF和VLOOKFOR来做查询功能.这种方法也是最简单最实用的.唯一的缺点就是数据量过于庞大的话处理速度会比较慢. 以你上面的例子,用VB最简单,只要做个简单的VB界面就能完成.数据库只要做二个.二个数据表的建立方法我上面说了,ACCESS导入EXCEL就可以了,不过你也可以直接复制到EXCEL里面.如果你想做EXCEL的话,我发一个我刚做的工资表给你,你只要看那几个连接公式就可以了.
河东区15327432389: 如何取得access数据库的记录总数 - ?
中韦素安: 可用dcount函数取某表的记录数 但ACCESS没有计算数据库所有表 记录总数的功能
河东区15327432389: 如何在Access查询中获取表的总记录数? - ?
中韦素安: 表达式2: round(count(*)/(select count(*) from 表名)*100,2) 楼上那个是括号用的中文写法吧
河东区15327432389: access中怎样提取一条记录的若干字段数值和 - ?
中韦素安: 创建查询,在查询中设置计算字段,在该字段把你要求和的字段相加就行.
河东区15327432389: access中怎样实现在报表中输出对已有记录的汇总 - ?
中韦素安: 在报表设计状态,添加一个文本框控件,设置该文本框属性的控制项数据来源,如果要统计某个字段的合计:=dsum("字段名","表名","条件") 如果要统计报表记录条数:=dcount("字段名","表名","条件") 其中"表名"为报表数据关联的表或者查询的名字.
河东区15327432389: 请教高手access数据库有什么方法可以实现提取某个ID后面所有的记录? - ?
中韦素安: Select * From NewsData where id>18 ORDER BY id DESC 可以实现 如果只要显示的效果的话 可以使用Do while循环来实现<% Do while not 记录集.eof If 记录集(数据) > 18 then Response.Wirte("记录集(数据)") '如果大于18就显示 End if loop%>
河东区15327432389: access数据库 如何进行计算总数的查询? - ?
中韦素安: **************** 考虑到【岗位工资,级别工资,津贴】有可能是【NULL】值的话,用下面的语句 **************** select姓名,iif(isnull(岗位工资),0,岗位工资)+iif(isnull(级别工资),0,级别工资)+iif(isnull(津贴),0,津贴) as 总工资from 教师工资明细表;******************** 这个语句输入的地方: ******************** 新建一个查询,空的就可以,然后 右键→设计视图→右键→SQL视图在出来的空白处,把sql文输入就可以了.--- 以上,希望对你有所帮助.
河东区15327432389: access怎样查询出当前记录的总数量 - ?
中韦素安: 估计是不行,我看你还是自己生成编号然后插入吧
河东区15327432389: 在ACCESS中查询的汇总中怎样显示记录的数目??
中韦素安: 用COUNT函数就可以了: Select count(*) From tablename 这样就可以得到这个表的记录总数