设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 这样的查询该怎么做?

[复制链接]
11#
发表于 2006-7-23 07:01:00 | 只看该作者
费了好大的劲,终于做出来一个。大家看看。

本帖子中包含更多资源

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

x
12#
发表于 2006-7-23 07:24:00 | 只看该作者
辛苦啦 [em27]
13#
发表于 2006-7-23 08:22:00 | 只看该作者

OK

先建个函数,用来返回源表中字段值的组合:

Function strget()
Dim rs As New ADODB.Recordset
Dim STR As String
rs.Open "select 源表字段 from 源表", CurrentProject.Connection
STR = rs.GetString(adClipString, , , ";")
strget = Left(STR, Len(STR) - 1)
End Function

建个表,将表字段设成“索引(不重复)”,然后运行一段代码:

Private Sub CommandButton_Click()
arr = Split(strget, ";")
For Each ar In arr
    DoCmd.SetWarnings False
    DoCmd.RunSQL "insert into 新表(字段) select '" & ar & "'"
    DoCmd.SetWarnings True
Next
MsgBox "set OK!"
End Sub

就可以了,详见附件:

本帖子中包含更多资源

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

x
14#
发表于 2006-7-23 16:37:00 | 只看该作者
后来发现我那个查询2是多余的,缺省情况下UNION 运算时不返回重复的记录!

直接用“查询1”就可以了。

在一般情况下,如果允许用辅助表,那么老鬼的方法值得一试。
15#
发表于 2006-7-23 19:07:00 | 只看该作者
学习学习
16#
发表于 2006-7-23 19:36:00 | 只看该作者
不用临时表,在10楼例子的基础上改成联合查询的方式





[此贴子已经被作者于2006-7-23 16:17:35编辑过]

本帖子中包含更多资源

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

x
17#
发表于 2006-7-23 23:34:00 | 只看该作者
不用临时表的意思是不是说,也不能用临时的查询?因为两者的性质接近啊。那怎么处理哦。

楼上的高手们可以把UNION ALL中的ALL去掉,得出的查询值就不会重复了,用不着DISTINCT。
18#
发表于 2006-7-24 00:26:00 | 只看该作者
以下是引用老鬼在2006-7-23 15:34:00的发言:


不用临时表的意思是不是说,也不能用临时的查询?因为两者的性质接近啊。那怎么处理哦。

楼上的高手们可以把UNION ALL中的ALL去掉,得出的查询值就不会重复了,用不着DISTINCT。



        没看到楼主的例子,大家都只是按题意各人理解,具体要怎么样,只有楼主才清楚

         
19#
 楼主| 发表于 2006-7-24 01:40:00 | 只看该作者
因为程序须在光盘上只读使用,因此会有所限制。我试了一下,11楼wuaza做的可以使用,但我看不懂,wuaza能不能解释一下下呢?
20#
发表于 2006-7-24 02:10:00 | 只看该作者
主要是分段取出字符串,然后再联合。

andymark版主的应该也可以实现你的要求。原理大同小异。

具体在QQ上聊吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-10 20:32 , Processed in 0.103180 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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