一 前言前面两节文章,你吃透了么?那两节对Access做了一个简单的功能预览和数据导入讲解,从这一节开始,我们将进入Access最神奇的世界—查询世界,讲解之前,你可以回顾一下Excel的vlookup使用,有没有在用它的时候,不得不将LAC和CI连接成LAC_CI然后再以它为基准进行vlookup呢?你要获得很多列数据的时候,是否用了很多遍vlookup呢?如果你要在三个工作表中去vlookup,经历过这种场景吗?如果对此如此熟悉又很无奈,那么请继续认真的来熟悉一下Access的查询。Access创建查询主要有两种方式,一种是通过向导建立查询,另一种是通过设计视图创建查询,由于初学者对Access中的一些名词概念意义与平时的习惯语义的理解差异,跟着向导的引领来建立查询总是会不得要领,所以我们跳过向导方式,直接来介绍通过设计视图来创建查询。查询有很多种,最简单常用的就是选择查询,我们今天就先介绍选择查询,掌握它之后我们再在它的基础上逐步进阶。二 素材准备无论做啥查询,都得有基础素材,也就是基础数据,所以一定要熟悉上一节的“怎样将各种数据导入到Access中”,以便准备好食材。本次采用一位网友提供的食材:
各位看着是不是非常熟悉,前两个为华为LTE异频邻区和同频邻区清单,使用LST命令所导出。
“网格内的现网小区.xlsx”文件部分内容如下,是某一个网格的小区清单:
这个表格中只有小区名称,而同频邻区和异频邻区这两个表中本地小区名称一列的信息不全,很多为NULL,所以不能作为关联依据,否则会导致邻区整理结果不全,所以需要用LST CELL中的小区名称来与“现网小区名”中现网小区名来对应,然后用LST CELL中的网元和本地小区标识与邻区表中的网元和本地小区标识来对应,才能完整准确的得到网格内所有小区的同邻频邻区列表,联系网友重新获得LST CELL.CSV文件。
以上素材各位现场的童鞋们就自行提取吧,不用从网站下载了!
三 导入数据1 导入LST EUTRANINTRAFREQNCELL.csv先利用上一节所学的技能,将LST EUTRANINTRAFREQNCELL.csv导入到新建的Access数据库文件中,其中注意有些字段的类型,比如移动网络码,我就从默认改为文本,这样才能保持原始的00。
2 主键的设置目前我暂时不建议各位设置主键,虽然主键是非常重要的一个设置,因为一般主键是多个字段共同组成的,而这里只能选择一个,所以暂时不设,避免误导和增加麻烦。
3 导入表名定义另外为了查询设计的时候表名引用的方便,导入到表界面表名更改为EUTRANINTRAFREQNCELL
由于邻区数量巨大,LST EUTRANINTRAFREQNCELL.csv文件大小400MB,点击完成按钮后,我的电脑用了50秒才导入完成,导入后的Access数据库文件大小为620MB。而LST EUTRANINTERFREQNCELL.csv文件大小1GB,所以为了避免导入过程中由于Access文件大小超出2GB限制,所以再新建一个Access文件进行异频邻区的导入。溜了个弯,回来已经导完了,所以没有记下花费的大概时间,估计在3分钟左右,而导入后的Access文件达1.5GB。看来这两个邻区表只能放在两个Access数据文件中了。
4 网格内现网小区的导入网格内的现网小区.xlsx文件内容少,直接拷贝标题和内容,然后再打开同频邻区这个Access文件,在其中直接粘贴即可,后续操作我们都将在这个Access文件中进行操作,结果如图:
5 把新获得的cell和eNodeBfunction也导入进来吧。
导入LST CELL的时候,发生输入错误,打开错误表格,可以看到频带和下行频点两个字段出错,打开原始信息表可见,这几个字段为啥出错,这次不影响使用目的,暂时忽略错误直接继续:
6 链接异频邻区表将异频邻区.accdb库中的异频邻区表EUTRANINTERFREQNCELL链接进入同频邻区这个Access库中来。
现在同频邻区这个库里,五个数据表都有了,EUTRANINTERFREQNCELL这张表前面的图标是不是有所不同呢,那就是因为它是链接表而已。注意:a) 导入过程中,被导入文件不能处于被打开状态。b) 两个邻区导入一个Access文件的话, Access文件会超出2G的大小限制而出错,所以对于特别大的数据建议导入到不同的Access库文件中,然后在其中一个库中链接其他库中的表去使用,避免后续频繁发生文件超过限制而引发的错误。c) 如果Access文件频发增删数据后文件过大,甚至已经过大出错,那么如何压缩Access文件呢,Office按钮—管理—压缩和修复数据库
四 设计查询1 点击菜单栏上面的:创建——查询设计
2 添加查询需要的数据表弹出了显示表的对话框,这里你要选择作为数据源的表,我选择的是eNodeBFunction,CELL和现网小区名,然后点击添加,最后点击右上角的关闭按钮
3 添加的两个表出现在这个位置由于没有添加主键,所以表和表之间不会自动产生关联关系,需要我们手动建立关联关系
4 拖动ENODEBFUNCTION中的网元到CELL中的网元
看见没有,一条神秘的线出现了,这就是关联关系,继续拖动CELL表中的小区名称到现网小区名中的现网小区名
5 拖拽ENODEBFUNCTION表的网元和eNodeB标识到下面的字段行,这样就给查询添加了两个字段,再双击CELL表中的小区名称,看看有何变化:
6 最后点击左上角Office按钮旁的保存按钮
7 弹出了对话框,要求你输入查询的名字,然后点击确定
8 最后点击表视图,也就是图示按钮突显的位置
9 这样就看到了我们刚才建立的查询的执行结果了。
10 这个查询中只关联了3个表,选了三个字段,其实你还可以增加更多表,将他们关联好后,从不同的表中选择更多的字段,是不是很像Excel中的vlookup函数呢,不过他可比vlookup强大多了,因为两个表之间关联的时候不是只能拉一条线,而是可以拉很多条;而且他不是只能两个表而是很多表都可以参与进来。有没有体会到选择查询的强大呢!这次就到这里了,这是一个比较基础的选择查询,网友获得同频邻区和异频邻区的目的在这次帖子中还没有完成,欲知详情,敬请关注本公众号,且听下回分解。可/QQ:110290428,邀请加入Access学习群进行交流!
【本文来源:韩国服务器 http://www.558idc.com/kt.html欢迎留下您的宝贵建议】