设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2504|回复: 8
打印 上一主题 下一主题

[窗体] 请问,我要把筛选后的交叉查询结果保存在表里,而且不允许有重复,该怎么做呢?

[复制链接]
跳转到指定楼层
1#
发表于 2011-2-13 16:03:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是按日期来筛选交叉查询,我想把交叉查询结果保存在表tbl0里,如果更改了数据,比如2月份更改了数据,那么重新筛选后将结果保存在表tbl0里时,则对原来不同的记录进行覆盖,如果是对下一个月筛选时,比如3月份,则把该查询结果追加在表tbl0里。这种要求该怎么做呢,我在论坛上搜索了许久,都没有找到相关的例子,还请大家帮帮忙哈。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-2-13 18:16:03 | 只看该作者
本帖最后由 todaynew 于 2011-2-13 18:24 编辑

其实就是两种办法,其一是把更新查询统一转为追加查询处理(方法是对既有记录进行删除查询);其二是把追加查询统一转为更新查询(方法是先用追加查询增加足够的空白记录)。一般情况下,采用第一种方法比较妥当,应为当第二种方法在表中有若干外键时处理起来比较复杂。以下是第一种方法的一个示例:

dim ssql as string
dim strwh as string
strwh="月度='" & me.月度.value & "'"
if Dcount("*","tbl0",strwh)>0 then
       ssql="DELETE * FROM tbl0 WHERE " & strwh
       docmd.runsql  ssql
end if
ssql="INSERT INTO tbl0 (字段列表) "
ssql=ssql & "select 字段列表 from 交叉查询"
docmd.runsql  ssql

你可以参见《餐饮》一文。这里面的处理和你的问题是类似的,只是我采用的是ADO记录集处理。
3#
发表于 2011-2-13 20:06:51 | 只看该作者
简 发表于 2011-2-13 16:03
我是按日期来筛选交叉查询,我想把交叉查询结果保存在表tbl0里,如果更改了数据,比如2月份更改了数据,那么 ...

给你一个简化的例子看。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
 楼主| 发表于 2011-2-14 07:43:20 | 只看该作者
因为输入记录的一个月下来可能几千条,甚至上万条,如果说从提高效率和保证正确的前提上来说,是用追加查询好呢,还是ADO呢。
5#
发表于 2011-2-14 10:15:27 | 只看该作者
简 发表于 2011-2-14 07:43
因为输入记录的一个月下来可能几千条,甚至上万条,如果说从提高效率和保证正确的前提上来说,是用追加查询 ...

没有测试过,应该差别不会太大吧?
用查询通常语句简单一些,记录间的计算比较复杂的情况下选用记录集会方便处理。
6#
发表于 2011-2-16 21:26:26 | 只看该作者
本帖最后由 todaynew 于 2011-2-16 21:27 编辑

1.我在日期查询里选择2011,就会弹出以下提示,这是为什么呢。
答:你的字段名称与控件名称混乱不堪,出错正常,不出错倒是起了怪了。

2.选择卡上的第二页,子窗体2的页脚控件时有时显示为“#错误”,有时又正确,而总计控件值为空白时,我按=nz(sum(子段名),"0.00"设置,有时能显示出0.00,有时不能显示0.00,这又是怎么回事呢。
答:设置默认值为"0.00"。出现“#错误”,应该是两种情况其一是计算公式不对,其二是子窗体无记录。就你说的现象来看,应该属于第二种情况。

3.我要把筛选后的交叉查询转存为表tbl0,见命令按钮“统存”的代码,为什么不起作用呢。
答:请在“统存”代码中不同地方插入msgbox查找原因。

7#
 楼主| 发表于 2011-2-16 21:46:07 | 只看该作者
todaynew 发表于 2011-2-16 21:26
1.我在日期查询里选择2011,就会弹出以下提示,这是为什么呢。
答:你的字段名称与控件名称混乱不堪,出错 ...

对于第一个问题,我并没有找到字段名称与控件名称浑乱的情况。
8#
 楼主| 发表于 2011-2-16 21:05:17 | 只看该作者
本帖最后由 简 于 2011-2-16 21:06 编辑

我上传了个例子,请看看,为什么会有下列错误。

1.我在日期查询里选择2011,就会弹出以下提示,这是为什么呢。



2.选择卡上的第二页,子窗体2的页脚控件时有时显示为“#错误”,有时又正确,而总计控件值为空白时,我按=nz(sum(子段名),"0.00"设置,有时能显示出0.00,有时不能显示0.00,这又是怎么回事呢。

3.我要把筛选后的交叉查询转存为表tbl0,见命令按钮“统存”的代码,为什么不起作用呢。



唉,这三个问题把我折腾够了~~~~



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2011-3-8 21:05:31 | 只看该作者
怎样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 18:03 , Processed in 0.081419 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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