BOF或EOF中有一个是“真”,或者当前的记录被删除

mylajilaji 2008-09-11 06:03:23
test数据库中有个表,sheet1的内容如下,三个字段:分类、项目、2007年报

分类 项目 2007年报
经营资产 应收账款 259323054
经营资产 预付款项 55169003
经营资产 其他应收款 16965952
经营资产 存货 866076352
经营资产 长期股权投资 17763628
经营资产 固定资产 1547259191
经营资产 在建工程 660651564
经营资产 无形资产 175945907
经营资产合计 经营资产合计
我的意图:利用ADO求分类是“经营资产”的“2007年报”的和
Private Sub Form_click()
Dim mycon As New ADODB.Connection
Dim mystr As String
Dim myrst1 As New ADODB.Recordset


Dim s As Variant

mycon.Provider = "Microsoft.Jet.OLEDB.4.0"
mycon.Open "Data Source = C:\test.mdb"
myrst1.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic

With myrst1
Do While Not .EOF
.Find "分类='经营资产'"
s = s + .Fields("2007年报").Value
.MoveNext
Loop
End With
myrst1.Close
End Sub
出现错误:BOF或EOF中有一个是“真”,或者当前的记录被删除
我怎么也查不出错误,请赐教。
...全文
1047 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
mylajilaji 2008-09-12
  • 打赏
  • 举报
回复
根据各位的热心帮助,我找到了问题的原因,
find惹得祸, 原表一共9条记录,8条记录有“经营资产”,当循环至第九次时,已经find不到"分类='经营资产'",指针将跑到eof处,.MoveNext 将使指针越界,出现问题,使用myrst1.filter = "分类='经营资产'"就没有问题了。

可是我还有一个问题,需要在ado中使用变量,发现:VB可以在SQL语句使用变量(excute方法),ado中却不行呀
原来的语句修改成下面的就行了
With myrst4
.Filter = "分类='经营资产'"

Do While Not .EOF
s = s + .Fields("2007年报").Value
.MoveNext
Loop
End With
如果我的程序需要利用变量,发行有问题
X="经营资产" '前面已经定义X为字符串了
With myrst4
.Filter = "分类=X"

Do While Not .EOF
s = s + .Fields("2007年报").Value
.MoveNext
Loop
End With
这段程序为何不行?我需要在ADO中使用变量,可以做到吗?


wwwwb 2008-09-12
  • 打赏
  • 举报
回复
VBA没有VFP的LOCA、CONT组合,用FILTER、SQL语句解决,效率好、结果准确
wwwwb 2008-09-12
  • 打赏
  • 举报
回复
呵呵,还有问题,第二次查找要从第一次查找后的记录开始才行,用FILTER好一点
vbman2003 2008-09-12
  • 打赏
  • 举报
回复
wwwwb 好快哦.............
vbman2003 2008-09-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwwwb 的回复:]
直接求和用SQL语句就可以,用两个记录集
myrst1.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic
myrst2.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic
do while not myrst1.eof

myrst2.Find "分类='经营资产'"
if not myrst2.eof then
s = s + .Fields("2007年报").Value
end if

myrst1.movenaxt
loop
[/Quote]

恩,这样可以的......
wwwwb 2008-09-12
  • 打赏
  • 举报
回复
上述代码效率比
myrst1.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic
myrst2.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic
do while not myrst1.eof

myrst2.Find "分类='经营资产'"
if not myrst2.eof then
s = s + .Fields("2007年报").Value
end if

myrst1.movenext
loop
高一些
wwwwb 2008-09-12
  • 打赏
  • 举报
回复
如果用filter:
myrst1.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic
myrst1.filter = "分类='经营资产'"
do while not myrst1.eof
s = s + .Fields("2007年报").Value
myrst1.movenaxt
loop
vbman2003 2008-09-12
  • 打赏
  • 举报
回复
但是要注意,以上代码并不是将"分类='经营资产'"全部找出,而是从第一个分类='经营资产'处开始,输出下面的所有记录
如果要只找出所有 "分类='经营资产'"的信息,要用myrst1.filter = "分类='经营资产'"
wwwwb 2008-09-12
  • 打赏
  • 举报
回复
直接求和用SQL语句就可以,用两个记录集
myrst1.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic
myrst2.Open "select * from sheet1", mycon, adOpenDynamic, adLockOptimistic
do while not myrst1.eof

myrst2.Find "分类='经营资产'"
if not myrst2.eof then
s = s + .Fields("2007年报").Value
end if

myrst1.movenaxt
loop
vbman2003 2008-09-12
  • 打赏
  • 举报
回复

with myrst1
if not .bof then
.Find "分类='经营资产'"
while not rs.eof
s = s + .Fields("2007年报").Value
.movenaxt
wend
end if
.Close
wend

wwwwb 2008-09-12
  • 打赏
  • 举报
回复
呵呵,你执行了FIND,应该判断是否找到,再做处理,而不是MoveNext
mylajilaji 2008-09-12
  • 打赏
  • 举报
回复
老大我知道用select做,问题是:我自己的代码问题出在哪里?
WWWWA 2008-09-12
  • 打赏
  • 举报
回复
OK,自行解决更好
mylajilaji 2008-09-12
  • 打赏
  • 举报
回复
我复制粘帖 .Filter = "分类='" & x & "'" 后可行了,我明白了
根据字符串的运算规则"分类='" & x & "'" 等同于 "分类='经营资产'" (在x = "经营资产" 的情形下,)
纠正一个错误:.Filter = "分类=" & X (在ACCESS中不可行,我测试过了,也就是说只有一种正确的表达式 .Filter = "分类='" & x & "'"
WWWWA 2008-09-12
  • 打赏
  • 举报
回复
测试,要用
.Filter = "分类='" & x & "'"
这种方式
WWWWA 2008-09-12
  • 打赏
  • 举报
回复
上传你的MDB到www.access911.net/csdn
只要有问题的表、查询,用WINRAR压缩
WWWWA 2008-09-12
  • 打赏
  • 举报
回复
or
.Filter = "分类=" & X
看来你没有仔细看过我的代码
WWWWA 2008-09-12
  • 打赏
  • 举报
回复
.Filter = "分类='& x&'" ->
.Filter = "分类='" & x & "'"
mylajilaji 2008-09-12
  • 打赏
  • 举报
回复
还是有问题,请wwwwa亲自测试一下
原始数据:test数据库中有个表,sheet1的内容如下,三个字段:分类、项目、2007年报
分类 项目 2007年报
经营资产 应收账款 259323054
经营资产 预付款项 55169003
经营资产 其他应收款 16965952
经营资产 存货 866076352
经营资产 长期股权投资 17763628
经营资产 固定资产 1547259191
经营资产 在建工程 660651564
经营资产 无形资产 175945907
经营资产合计 经营资产合计

我的代码,无参数形式的


Dim mycon As New ADODB.Connection
Dim mystr As String
Dim myrst1 As New ADODB.Recordset
Dim x As String

mycon.Provider = "Microsoft.Jet.OLEDB.4.0"
mycon.Open "Data Source = C:\test.mdb"
myrst1.Open "select * from sheet1", mycon, adOpenKeyset, adLockPessimistic
’x = "经营资产"
With myrst1
‘.Filter = "分类='& x&'"
.Filter = "分类='经营资产'"
Do While Not .EOF
Debug.Print .Fields("2007年报").Value
.MoveNext
Loop
End With
End Sub
可以正确运行,得到结果

下面是用参数形式就不行
Dim mycon As New ADODB.Connection
Dim mystr As String
Dim myrst1 As New ADODB.Recordset
Dim x As String

mycon.Provider = "Microsoft.Jet.OLEDB.4.0"
mycon.Open "Data Source = C:\test.mdb"
myrst1.Open "select * from sheet1", mycon, adOpenKeyset, adLockPessimistic
x = "经营资产"
With myrst1
.Filter = "分类='& x&'"
‘.Filter = "分类='经营资产'"
Do While Not .EOF
Debug.Print .Fields("2007年报").Value
.MoveNext
Loop
End With
End Sub
这段程序没有报错,但是没有结果?
请WWWWA用ACCESS亲自测试一下,谢谢

WWWWA 2008-09-12
  • 打赏
  • 举报
回复
or
.Filter = "分类=" & X
加载更多回复(3)
1. ASP与Access数据库连接: <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile %> 2. ASP与SQL数据库连接: <% dim conn set conn=server.createobject("ADODB.connection") con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 %> 建立记录集对象: set rs=server.createobject("adodb.recordset") rs.open SQL语句,conn,3,2 3. SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 " sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 " sql="select top 10 * from 数据表 where 字段名 order by 字段名 " sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)" sql="select * from 数据表 where 字段名 between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql) 用 rs("别名") 获取统的计值,其它函数运用同上。 (5) 数据表的建立和删除: CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表名称 (永久性删除一个数据表) (6) 记录集对象的方法: rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最后一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete 删除当前记录,但记录指针不会向下移动 rs.addnew 添加记录到数据表末端 rs.update 更新数据表记录 判断所填数据是数字型 if not isNumeric(request("字段名称")) then response.write "不是数字" else response.write "数字" end if
第五部分、操作人员管理设计说明 操作人员维护模块的运行界面如图18所示 图18 操作人员维护界面 操作人员管理系统主要是用来管理对该软件进行操作的工作人员,同时系统所提供的用户权限设置能够提高系统的安全性,并对不同性质的人员给予不同的权限 5.1程序描述 主窗体的代码不是很复杂,界面设计主要是利用了树型控件来实现的 程序模块名称:frmsq; 重要控件:TreeView、图像列表Imagelist等; 相关数据库表:user_load。 该窗体主要实现增加用户、删除用户、对用户进行授权,主要是面向管理人员对操作人员的操作进行管理,满足不同层次的人员对系统不同的需求。 5.2功能 操作人员管理系统主要是用来管理对该软件进行操作的工作人员,同时系统所提供的用户权限设置能够提高系统的安全性,并对不同性质的人员给予不同的权限,为了方便集中管理数据库表和数据源,我们把数据库的连接放到Global.bas模块中,应用ADO接口技术直接和SQL Server 2000数据库服务器建立连接。 5.3性能 精 度:通过鼠标点击或快捷键进入子模块,对在文本框内输入的大小写敏感,姓名和密码都区分大小写 灵 活 性:用户鼠标点击可以进行确认,按E键表示关闭当前窗口; 时间特性:用户输入后的验证时间在1秒之内; 5.4输人项 通过鼠标点击或快捷键。用户输入的姓名,密码字符信息;这些信息由系统管理员管理,存储在数据库表中 5.5输出项 提示信息为信息符号,参考的输出结果如图19,在屏幕上显示一个对话框: 图19:一个显示删除管理员的对话框信息 5.6算法 该窗体主要实现对用户授权,用户的授权是采用0,1编码来实现的。如果该用户拥有某项权限,则该权限为1;反之,则为0。 5.7流程逻辑 登录组件的逻辑流程如下: 图20:操作人员维护模块数据流程图 5.8接口 接口设计包括组件提供给外部的接口和对数据访问组件的调用接口,这些接口构成了该ActiveX 控件实现的内容,该窗体主要实现增加用户、删除用户、对用户进行授权,主要是面向管理人员对操作人员的操作进行管理,满足不同层次的人员对系统不同的需求。 Private SubCommand3_Click () '删除操作人员的命令按钮 '显示对话框,是否删除操作人员 t = MsgBox("你是否确定删除该操作员!", vbOKCancel, "确定吗?") If t = 1 Then '如果返回1,则进行删除操作 '判断是否有记录,如果没有记录,则提示选择操作人员 If rsdel.BOF = True Or rsdel.EOF = True Then t = MsgBox("请选择操作员姓名!", vbOKOnly, "无记录") Else '否则进行删除,并显示成功删除操作人员对话框 rsdel.Delete t = MsgBox("成功删除操作员姓名!", vbOKOnly, "成功") End If tvwdb.Nodes.Clear '清除TreeView中节点的内容 tvwdb.Sorted = True '设置sorted属性为 Set mnode = tvwdb.Nodes.Add() mnode.Text = "操作员姓名" '节点显示“操作员姓名” mnode.Image = 2 '设置节点的图表为imagelist1中的图2 Set rspsw = New ADODB.Recordset rspsw.open"select*from user_load",cn,adOpenStatic,adLockPessimistic Do Until rspsw.EOF '用rspsw中的记录对treeview进行加载 Set mnode = tvwdb.Nodes.Add(1, tvwChild) '添加treeview的孩子 mnode.Text = rspsw.Fields("user_name") '使其文本为rspsw字段中的用户名 mnode.Image = 1 '设置节点的图表为imagelist1中的图1 rspsw.MoveNext '记录往后移动一条 Loop Else Exit Sub End If '将用户数据库表中的用户名加载到treeview控件中 Private SubPrivate Sub loadtreeview() tvwdb.Sorted = True '将treeview的排序设为 Set mnode = tvwdb.Nodes.Add() mnode.Text = "操作员姓名" '节点显示“操作员姓名” mnode.Image = 2 '设置节点的图表为imagelist1中的图2 If cn.State = 1 Then Else Call condatabase '连接数据库 End If Set rspsw = New ADODB.Recordset '打开rspsw记录集 rspsw.open "select * from user_load", cn, adOpenStatic, adLockPessimistic Do Until rspsw.EOF '用rspsw中的记录对treeview进行加载 Set mnode = tvwdb.Nodes.Add(1, tvwChild) '添加treeview的孩子 mnode.Text = rspsw.Fields("user_name") '使其文本为rspsw字段中的用户名 mnode.Image = 1 '设置节点的图表为imagelist1中的图1 rspsw.MoveNext '记录往后移动一条 Loop End Sub Private Sub Form_Load() '窗体加载过程 Call loadtreeview '调用loadtreeview过程 End Sub Private Sub tvwdb_NodeClick(ByVal Node As MSComctlLib.Node) '处理nodeclick事件 If Node.Index = 1 Then '如果只有一个根节点,则退出程序 Exit Sub End If Call check_condatabase '检查是否连接数据库,如果连接了则放弃,否则连接 If Node.Parent.Index = 1 Then '是根节点 nodename = Node.Text '将删除的变量赋值给nodename Set rsdel = New ADODB.Recordset '获得该节点的用户名的所有资料 rsdel.open "select * from user_load where user_name='" & nodename & "'", cn, _ adOpenStatic, adLockPessimistic End If End Sub 5.9存储分配 本程序在高级语言Visual Basic进行编码,直接的内存分配由VB运行时分配。 本组件内所依赖的变量、结构要求全部在组件元素内申明。 5.10注释设计 本部分代码的实现,应按照该注释规范来进行。 5.11限制条件 控件所依赖的的ActriveX DLL prjDBACCESS必须存在。 该控件在使用的时候,必须经过注册,并且在运行时,客户端程序必须安装有VB运行时的动态连接库。 在运行时,用户端的计算机必须有鼠标或触摸板等点输入设备。 5.12测试计划 本模块的输入基本有鼠标点击来完成,不需要特殊的测试用例,在增加管理员是具体的测试用例和登录测试用例相同,这里不再一一例举。 5.13尚未解决的问题 本模块的没有尚未解决的问题。
【关键字】系统 2011-2012年第一学期《数据库管理系统》复习提纲 数据库根底 数据管理的发展: 人工管理、文件管理、数据库管理 (数据共享、数据独立性逐步提高) 数据库DB、数据库管理系统DBMS、数据库系统DBS,其中DBMS是核心。 数据模型 实体的概念(entity)及属性 实体之间的联系(relationship) 1)一对一联系 2)一对多联系 3)多对对联系 (3)数据模型的类别 1)层次模型(树型):不能直接表示多对多关系 2)网状模型:可以表示多对多关系,但是结构复杂 3)关系数据模型:二维表 关系模型的术语 关系 行:记录、元组 列:字段、属性 域 关键字 外部关键字 关系运算(灵活运用) 传统运算: 并、交、差:针对同属性、同域 专门运算: 选择:对行的操作,结果仍是原来关系,并且不会出现重复记录。 投影:对列的操作,结果是新的关系,会出现重复记录。 连接:自然连接,等值连接 Vfp数据根底(*) 数据类型及定界符:字符(C)、数值(N)、日期(D)、日期时间(T)、逻辑(L)、货币(Y)、通用(G)、备注(M)(哪些数据类型是定长的?) 【系统】数据库管理系统复习提纲全文共6页,当前为第1页。变量 【系统】数据库管理系统复习提纲全文共6页,当前为第1页。 分类:字段变量、内存变量。当两者出现重名时,默认字段变量,此时若要使用字段变量需用m.或者m—> 变量的赋值:=(一次为一个变量赋值)、store(一次可为多个变量赋相同的值) 变量的显示 1)?和?? 2)display memory或者list meomery;其中对于Like后通配符*和?的使用要与SQL中的通配符区分开来。 (4)数组变量 1)声明:declare或者dimension,没有赋值之前其中值默认为.f.,这与全局变量、局部变量的声明类似。 2)二维数组变量可以转换为一维。 表达式 数值表达式:能将日常使用的运算转换为可输入的运算表达式,同时注意运算符的优先级。 字符表达式:+、-,两者都是对字符串的连接,只有当运算符前的字符串末尾有空格时候会出现不同。 日期时间表达式 日期时间与数值运算:结果是日期型几天之前或者之后的日期、日期时间型几秒之前或者之后的日期时间 日期时间与日期时间:只能是相减,结果是日期型之间相差的天数、日期时间型之间相差的秒数 关系表达式 数值、货币型 日期、日期时间型:越晚的越大 逻辑型:大于假 子串包含:$ 字符串比较 大小比较:set collate to "pinyin"(machine、stroke) 相等比较:set exact on(off) 逻辑表达式:not、and、or 运算符优先级:(1)(2)(3)>(4)>(5) 函数 (1)数值运算函数: 【系统】数据库管理系统复习提纲全文共6页,当前为第2页。求整函数:int,ceiling,floor 【系统】数据库管理系统复习提纲全文共6页,当前为第2页。 绝对值函数:abs,符号函数sign 平方根函数:sqrt 指数函数:exp 对数函数:log 四舍五入函数:round 最值函数:max,min 求余函数:mod 字符函数: 字符串长度函数:len() 大小写转换:lower,upper 空格:space 删除前后空格:trim,ltrim,alltrim 取字串:left,right,substr 计算字串出现次数:occurs 取字串位置:at,atc 子串替换:stuff 字符替换:chartran 字符串匹配:like 日期时间函数: 系统时间:date,time,datetime 取年份、月份和天数:year,month,day 取时、分和秒:hour,minute,sec 星期函数:dow,cdow 数据类型转换函数: 数值转换为字符串:str 字符串转换为数值:val 字符串转换为日期或日期时间:ctod,ctot 日期时间转换为字符串:dtoc,ttoc 宏代换:& 测试函数: Between Isnull Empty 【系统】数据库管理系统复习提纲全文共6页,当前为第3页。Vartype 【系统】数据库管理系统复习提纲全文共6页,当前为第3页。 Eof,bof,recno,reccount Iif 数据库及其操作 数据库扩展名dbc 数据库创建、打开、修改:create database;open database;modify database 表的创建及操作(*) 表的创建:字段类型、备注型和通用型存储(FPT文件)、字段有效性(规则、信息和默认的输入) 表的打开:use 表结构的修改:modify structure(非sql修改表结构的命令) 表记录的定位:绝对定位、相对定位、条件定位(locate for与
SQL语法大全 SQL语法大全 1. ASP与Access数据库连接: 2. ASP与SQL数据库连接: 建立记录集对象: set rs=server.createobject("adodb.recordset") rs.open SQL语句,conn,3,2 3. SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like \'%字段值%\' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in (\'值1\',\'值2\',\'值3\')" sql="select * from 数据表 where 字段名 between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql) 用 rs("别名") 获取统的计值,其它函数运用同上。 (5) 数据表的建立和删除: CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表名称 (永久性删除一个数据表) 4. 记录集对象的方法: rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最后一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧