设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1234
返回列表 发新帖
楼主: cyber-bobo
打印 上一主题 下一主题

[查询] wuaza看过来:复杂问题简单化提问:这个查询怎样做?

[复制链接]
31#
发表于 2006-10-8 06:57:00 | 只看该作者
VBA的方式



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

本帖子中包含更多资源

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

x
32#
 楼主| 发表于 2006-10-8 07:10:00 | 只看该作者
还是不明,能举个例子吗?
33#
发表于 2006-10-8 07:18:00 | 只看该作者
呵呵,刚才忘记上传啦,文件上面
34#
 楼主| 发表于 2006-10-8 08:16:00 | 只看该作者
领教了,谢谢andymark版主!!!
35#
发表于 2006-10-8 16:05:00 | 只看该作者
以下是引用cyber-bobo在2006-10-4 23:51:00的发言:
还有,这个查询太复杂了,有没有其它比较简单一点的办法,还有如果表1中只有“名称”一个字段,或者在表1中删除一条记录,查询结果就会出错!

 自增字段必须是连续的,你可以用一临时表将记录装入

 还有如果表1中只有“名称”一个字段:前面已经说过,加入自增字段

 或者在表1中删除一条记录:重新生成连续ID即可。


以下是引用cyber-bobo在2006-10-4 23:16:00的发言:


再请教wwwwa,为何你做的查询不能修改或保存,显示如下错误:

  (d.id BETWEEN val(c.js) AND val(c.bg))

前面已经说过,用VBA更简单

[此贴子已经被作者于2006-10-8 10:02:18编辑过]

36#
发表于 2006-10-8 16:14:00 | 只看该作者
查询的方法我想不出来了。用andymark版主的方法就蛮好了。
37#
发表于 2006-10-8 16:43:00 | 只看该作者
以下是引用cyber-bobo在2006-10-6 14:07:00的发言:


感谢wuaza,祝中秋节快乐,再请教:如果条件改为名称相同的算一条记录,那么查询应如何修改?如下图:


也很简单,将原 FROM 表1,改为GROUP BY 名称,再将结果导入临时表即可

[此贴子已经被作者于2006-10-8 8:44:34编辑过]

38#
发表于 2006-10-9 02:50:00 | 只看该作者
也可以这样:

Private Sub Command0_Click()
Dim StrName As String
Dim I As Integer
Dim J As Integer
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Set Conn = CurrentProject.Connection
Rs.Open "select * from 表1 order by 名称", Conn, adOpenDynamic, adLockOptimistic
I = 1
Do While Not Rs.EOF
If StrName <> Rs.Fields("名称") Then I = I + 1
J = I / 3
Rs.Fields("id") = J
StrName = Rs.Fields("名称")
Rs.MoveNext
Loop
Set Rs = Nothing
Set Conn = Nothing
End Sub
39#
发表于 2006-10-9 19:38:00 | 只看该作者
精英啊! 我收藏!
40#
发表于 2006-11-4 17:14:00 | 只看该作者

在简单一点

如果id是连续的,新建一个查询,建一个表达式:

表达式1: Round(([id]+1)/3,0),就行了。

可以得出4行一组或任意分组的查询,修改就可以了。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 20:32 , Processed in 0.077366 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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