设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: AZA
打印 上一主题 下一主题

[与其它组件] [求助]表单行数如何统计?

[复制链接]
11#
发表于 2006-10-27 18:53:00 | 只看该作者
以下是引用aydl1014在2006-10-27 10:04:00的发言:


还可以这样写,代码比较简练

CurrentProject.Connection.Execute "DELETE * FROM 临时表;"
CurrentProject.Connection.Execute "INSERT INTO 临时表(表名) SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>'~') AND (Left$([Name],4) <> 'Msys') AND Name<>'临时表'AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;"
CurrentProject.Connection.Execute "update 临时表 set 记录数=dcount('[编号]',表名);"
DoCmd.OpenTable "临时表"

很好!
12#
 楼主| 发表于 2006-10-27 19:13:00 | 只看该作者
以下是引用aydl1014在2006-10-27 10:04:00的发言:


还可以这样写,代码比较简练

CurrentProject.Connection.Execute "DELETE * FROM 临时表;"
CurrentProject.Connection.Execute "INSERT INTO 临时表(表名) SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>'~') AND (Left$([Name],4) <> 'Msys') AND Name<>'临时表'AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;"
CurrentProject.Connection.Execute "update 临时表 set 记录数=dcount('[编号]',表名);"
DoCmd.OpenTable "临时表"



这段代码在我的机上运行时出现如下问题提示框:

***********************************************

Runtime'-2147217900(80040e14):'

Unknown

***********************************************

我按了调试键后,下面这句代码用黄色高亮显示:

******************************************************

CurrentProject.Connection.Execute "update 临时表 set 记录数=dcount('[编号]',表名);"

************************************************************

我机上的完整代码是:

Option Compare Database
Private Sub Command0_Click()
CurrentProject.Connection.Execute "DELETE * FROM 临时表;"
CurrentProject.Connection.Execute "INSERT INTO 临时表(表名) SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>'~') AND (Left$([Name],4) <> 'Msys') AND Name<>'临时表'AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;"
CurrentProject.Connection.Execute "update 临时表 set 记录数=dcount('[编号]',表名);"
DoCmd.OpenTable "临时表"
End Sub
*************************************************************************

请问如何纠正?谢谢!

[此贴子已经被作者于2006-10-27 11:13:31编辑过]

13#
 楼主| 发表于 2006-10-27 19:22:00 | 只看该作者
以下是引用aydl1014在2006-10-27 8:23:00的发言:


谢谢wuaza,空格没问题(估计是论坛自动排版的原因),关键是没有rst.update,已成功了

ATA,你可以看这个例子,需要建一个表,命名为“临时表”,含两列:表名、记录数

为什么我把代码转到我文件中运行时会出现下面问题?

Compile error:

User-defined type not defined

按OK键后,代码中如下语句黄色高亮:

Private Sub Command0_Click()

Dim rst As DAO.Recordset
14#
 楼主| 发表于 2006-10-27 19:34:00 | 只看该作者
以下是引用wuaza在2006-10-26 16:27:00的发言:
Private Sub count()
Dim i As Variant
For Each i In Application.CurrentData.AllTables
If Left(i.Name, 4) <> "Msys" Then
    If DCount("*", i.Name) > 0 Then
        MsgBox i.Name & "共有记录数" & DCount("*", i.Name) & "条"
    End If
End If
Next
End Sub

这段代码可行。只是可惜不是生成报表的形式。
15#
发表于 2006-10-27 21:03:00 | 只看该作者
Private Sub count()
Dim i As Variant
For Each i In Application.CurrentData.AllTables
If Left(i.Name, 4) <> "Msys" Then
    CurrentProject.Connection.Execute "insert 临时表(表名,记录数) values(i.Name,DCount("*", i.Name))"
End If
Next
End Sub

前提是建好一个包含“表名”和“记录数”这两个字段的临时表
16#
 楼主| 发表于 2006-10-28 01:55:00 | 只看该作者
这行代码:CurrentProject.Connection.Execute "insert 临时表(表名,记录数) values(i.Name,DCount(" * ", i.Name))"

在我的机上又提示错误:

Run-time error'13':

Type Match



我会晕倒了!!

17#
发表于 2006-10-28 05:01:00 | 只看该作者
不知道怎么回事,那改成这样试试。

Private Sub count()
Dim i As Variant
docmd.setwarnings false
For Each i In Application.CurrentData.AllTables
If Left(i.Name, 4) <> "Msys" Then
docmd.RunSQL "insert 临时表(表名,记录数) values(i.Name,DCount("*", i.Name))"
End If
Next
docmd.setwanings true
End Sub
18#
 楼主| 发表于 2006-10-31 23:24:00 | 只看该作者
还是提示错误,同16楼一样.[em06]
19#
发表于 2006-11-1 00:16:00 | 只看该作者
八成是你的临时表有问题,你看看字段的数据类型是否对应。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-10 23:48 , Processed in 0.102475 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表