Office中国论坛/Access中国论坛

标题: [求助]查询问题 [打印本页]

作者: 晴空雷    时间: 2007-6-19 19:53
标题: [求助]查询问题
我自己弄了一个人员信息表,表中有每人都有5、6个编号,为了方便查询,我把表格做成下表





<COLGROUP>

<COL style="WIDTH: 54pt" span=4 width=72>





编号

姓名

性别

……



1a

张三



……



1b

张三



……



1c

张三



……



2a

李四



……



2b

李四



……



2c

李四



……



3a

王五



……



3b

王五



……



3c

王五



……

这样在用查询的时候只要对应编号就可以了,但是现在人员越来越多,存储空间越来越大,而且还有人员变动,每一次变更信息都要更改5、6条记录,且容易出错(附件中就是原来的情况)。

请高手帮忙看看能不能实现,我在录入信息表的时候按照以下格式:





<COLGROUP>

<COL style="WIDTH: 54pt" span=6 width=72>





编号1

编号2

编号3

姓名

性别

……



1a

1b

1c

张三



……



2a

2b

2c

李四



……



3a

3b

3c

王五



……

做一个查询将表格变成下表,再用下表作查询。



<TABLE  cellSpacing=0 cellPadding=0 width=288 border=0 x:str>

<COLGROUP>

<COL style="WIDTH: 54pt" span=4 width=72>





编号

姓名

性别

……

<TR  height=19>

1a

张三

<TD >
作者: 一点通    时间: 2007-6-19 20:04
晕,一个人要这么编号干嘛?
作者: 晴空雷    时间: 2007-6-19 20:13
赫赫,工作需要,我也没办法,谢谢了。
作者: 一点通    时间: 2007-6-19 21:37
你要明白一个道理,多点等于没有点,过多的编号会给以后处理造成麻烦的
作者: poly    时间: 2007-6-19 22:34
用窗体做吧,或用交叉查询也可以做,不过那样你的表就得改一下了

[此贴子已经被作者于2007-6-19 14:36:21编辑过]


作者: 晴空雷    时间: 2007-6-19 23:37
谢谢4楼,我也不想这样,但是目前工作安排就是如此,我的笨方法越来越不实用,所以在网上寻求帮助,希望指点一二。
作者: 晴空雷    时间: 2007-6-19 23:39
5楼的兄弟是否可以给个提示,要如何更改表,或者做个例子参考一下,谢谢。
作者: poly    时间: 2007-6-19 23:40
把表再分一下,用交叉查询做,纵向用编号,横向用姓名、性别等就行了,做一个典型的中国试查询
作者: 晴空雷    时间: 2007-6-19 23:46
赫赫,非常感谢,目前我用的就是这样的方式,但是这种方法非常不实用,如果我要更改一个人的信息,那么我至少要更改3~5条记录,特别容易出现差错。所以我才打算看看没有其他的方法。
作者: poly    时间: 2007-6-19 23:52
如果你做出来的查询也可以改数据,你再基于这个查询做一个窗体,不就简单了
作者: 晴空雷    时间: 2007-6-20 00:27
抱歉,我明白你的意思,我目前直接用的是表,就如我在1楼中所写(第一个写着张三,李四的那个表),然后别的查询都通过对应编号进行对照查询。

我想达到的效果就是在录入表的时候按照1楼表2的格式进行录入,用个查询将表2转换成表1。

可能我的表述不是很清楚,千万别嫌我烦,谢谢了。
作者: poly    时间: 2007-6-20 00:33




  我也想知道不用交叉查询怎么样能做到你要的效果
作者: 晴空雷    时间: 2007-6-20 00:38
赫赫,那非常感谢了,对了你知道如何在adp中使用之前已经在access中的建好的模块么?
作者: 晴空雷    时间: 2007-6-20 01:39
还有谁能帮帮我呀!!!!!!!!!!!!!!!!!谢谢了,
作者: glw    时间: 2007-6-20 04:07
  SELECT 表1.编号1, 表1.姓名, 表1.性别
FROM 表1 union all SELECT 表1.编号2, 表1.姓名, 表1.性别
FROM 表1 UNION ALL SELECT 表1.编号3, 表1.姓名, 表1.性别
FROM 表1;

作者: eyewitnes    时间: 2007-6-20 18:03
为什么要自己给出编号?用系统的自动编号不行?或者再进一步,用姓氏的拼音首个字母加上系统的自动编号作为索引(这个稍微麻烦些)也可以吖
作者: 晴空雷    时间: 2007-7-4 18:24
呵呵,强,感谢![em02][em01][em01]
作者: 晴空雷    时间: 2007-7-4 18:27
呵呵,编号不是我可以控制的,是工作性质和上面领导决定的。感谢所有兄弟。
作者: 一点通    时间: 2007-7-4 18:40
这个问题建议用两个表来记录,分别为主名表,别名表

主名表: 主名ID  姓名

别名表: 主名ID  别名(也可以是编号)

将两个表以[主名ID]作关联,实施参照完整性,级联更新相关字段,

这样就容易变更所有的记录了
作者: 晴空雷    时间: 2007-7-4 19:03
哦,的确不错,感谢了,不过这样要实现我要的结果是不是还是需要16楼那样转化换一下。

另外我想搞一搞adp,但是原来的模块都不能用,而我用里面的定义总是搞不好,有什么方法么?谢谢了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3