用ACCESS构建自己的查询系统

【写在前面的话】

思忖良久,决定在简书写点东西,用以提醒自己,在职场的海洋中,即使风疾浪涌,只要自己找到兴趣和工作的结合点,并加以小小的钻研,也能建造起一艘属于自己的船,和心爱的人一起远航。


【背景介绍】

公司每月都会有一版销量报告存档,大概12M左右,记录数10W+,字段数21个,平时对接销售的销量申诉,需要按照机构名称、城市、品牌等字段查询历史销量,一年的YTD数据汇总后记录数达到100w+,EXCEL的极限,更别说汇总历史2-3年的数据,于是决定用ACCESS做一个简单的数据查询系统。


---------------------------这是一条严肃的分割线--------------------------

正文开始

【数据导入前的准备】

导入数据前检查两点:

(1)数据完整性,记录下待导入的条目数,以便导入后核对;

(2)数据格式,将隐藏行列显示,去除首行的空白行,使得导入时第一行做为列标题。


【导入数据】

有几种情况,分别说一下:

(1)只有一个表格的情况,数据导入比较简单:外部数据--Excel--按照向导导入即可,如图1。

(2)如果excel文件比较多,先导入一个,后续文件可追加进去(表头要与第一个表完全一致),例如导入第2个表时,选择”向表中追加一份记录的副本“,如图2。

(3)数据库文件的情况就比较方便,也是在外部数据--选择相应的类型按照向导导入,因为是数据库文件之间的交互,导入速度很快。


图1 导入数据



图2 追加数据



【创建窗体】

(1)新建一个空白窗体,创建--窗体设计,如图3


图3 创建窗体




(2)在窗体中创建控件

根据要检索的字段新建文本框,像品牌这类的字段可以使用组合框,另外注意的一点,创建的这些文本框不需要绑定某些字段,如果绑定了数据表中的字段后续查询时会造成数据的回写或清空。创建好的每个控件记得更改一下文本框名字,注意是更改文本框的名字,不是标签的名字,图4箭头所指的是文本框,叉号是标签,后续引用是引用的文本框。

然后,再创建两个按钮,即查询、清空,创建一个子窗体,这里也要注意,子窗体控件直接从窗体设计工具--设计中选择创建即可,不需要单独创建,同样更改控件名称,以便后续调用。

最终创建好的效果如图5,然后将窗体保存,命名为“数据查询”,关闭。


图4 更改文本框的名字



图5 创建窗体


【创建查询】

(1)创建查询,创建--查询设计,将自己需要的字段加入到下边的窗口中。

(2)编辑条件,利用生成器编写,销售时间的条件为:Between [Forms]![数据查询]![开始日期] And [Forms]![数据查询]![结束日期],

其余的字段需要模糊查询,需要用到Like和通配符*以及连接符&,举个例子,例如品牌的条件为:Like "*" & [Forms]![数据查询]![品牌] & "*",以此类推,按照图6把需要的条件都编辑好。

(3)关键一步,将查询的记录集类型改为快照,如图7,避免回写数据表。

(4)保存查询,命名为“DDI数据查询”,关闭。


图6 创建查询


图7 更改查询的记录集类型

【建立查询和窗体的联系】

(1)这一步非常简单,设计视图打开“数据查询”窗体,将“DDI数据查询”直接拖至子窗体中,然后保存一下窗体。

(2)关键一步来了,编辑两个按钮的事件,设计视图中选择查询按钮--事件--单击--“...”,如图8,代码如下,注意,代码中的控件名称如Child10、开始日期等是我自己命名的,请用自己的相应控件名称,不然会报错。具体代码逻辑非常简单,点击查询按钮后,“DDI数据查询”会引用窗体中你输入的信息做为条件去数据表中查询数据,然后显示在子窗体Child10中,清空按钮是将“数据查询”窗体中的条件都置为空,然后重新查询,显示在Child10中。

‘-----------

Private Sub Command9_Click()

If IsNull(Me.开始日期.Value) Or IsNull(Me.结束日期.Value) Then

MsgBox ("请选择日期!")

Else

Me.Child10.Requery

End If

End Sub

‘-----------

同样的,清空按钮的单击事件代码如下,

‘-----------

Private Sub Command12_Click()

Me.进货方代码_匹配_ = Null

Me.进货方名称_匹配_ = Null

Me.进货方名称_流向单_ = Null

Me.进货方城市 = Null

Me.品牌 = Null

Me.开始日期 = Null

Me.结束日期 = Null

Me.Child10.Requery

End Sub

‘-----------

图8 编辑按钮单击事件



最后保存一下代码编辑窗口和数据查询窗体,关闭窗体。


好啦,赶快在窗体视图中打开“数据查询”,填上一些数据,选择好时间段,点一下查询试试看会发生什么,然后再试试点击清空看看。


---------------------------这是一条严肃的分割线--------------------------

正文结束


【写在最后】

正文中描述的很多操作和逻辑是比较精简实用的,因为自己开始摸索构建的时候,有过很多尝试,踩过很多坑,比如查询中销售日期的条件,最开始用的独立的宏代码和独立的查询按钮来产生时间,没有想到直接在查询中编辑条件就可以,再比如查询是可以直接被子窗体调用嵌套进主窗体,不需要单独创建子窗体后再将两个窗体嵌套等小的问题。

希望本文对大家有帮助,对于文中的疑问欢迎留言指教。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容