数据库质量管理系统

2009-02-01 03:29
数字技术与应用 2009年12期
关键词:数据库质量

郑 煜

[摘 要]J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。

[关键词]数据库 Access 质量

[中图分类号]G250[文献标识码]A[文章编号]1007-9416(2009)12-0109-02

1 引言

数据库有广泛的应用空间,可是一般人会认为数据库是专业化知识,数据库开发应该是软件工程师才能够完成的工作,从而使得数据库的应用客户都视其复杂的开发技术为畏途。数据库离我们到底有多远?以下我们就以一个生产厂的质量管理系统开发过程进行表述。

2 数据库的支架

数据库不会凭空产生,数据是数据库的灵魂。小到家庭主妇的账本,大到谷歌全球个人信息数据库。凡是有数据需要记录查询的地方都是一个数据库。在这里我们用一个工厂产品的质量记录作为数据库的支架,用最简单的微软Access数据库软件来编写程序。

我们先来熟悉下数据库需要完成的工作,我们将产品的检测性息记录保存下来,并在日后随时可以查询到。生成记录单,生成一段时期的记录情况报表。

3 数据库的开发过程

当然我们首先是打开Accsee软件,然后慢慢的进行后面的操作。

根据上面的需要,我们的数据库要具备以下功能,数据输入,数据各种条件查询,各种报表的生成。如图1所示。

3.1 数据表

首先,我们要根据产品类别的不同分别建立几张表,A类产品、B类产品、C类产品。将我们需要记录的项目定义在表中。比如产品编号、产品名称、检测的各种数据、检测结果等。这里面需要有一个主键,意思就是每一条记录都会有一个地方是不会重复的,这里我们定义产品编号为主键,因为只有产品编号是一一对应的。

我们数据的录入不可能直接在表里面操作,虽然感觉上直接操作表上的数据熟悉的人会比较轻松,但是容易误操作。特别是还有其他不是很熟练的人。这里我们需要自己做一个人机界面——窗口。

3.2 表窗口

于是,我们对应每一张表,做一个数据输入的窗口界面,这里我们需要输入的过程中同时观察到表的内容,我们选择用分割窗口来做。自动生成分割窗口后,我们可以看到之前我们在表中定义的数据都罗列在新的窗口中,我们可以通过在窗口中输入数据来改变表中的数据。除了这些,我们还需要一些其他的按钮来帮助我们完善界面功能,有很多按钮系统都自带了的,很方便,直接加载就可以了,比如前进、后退、最前列、最后列、删除、退出等。我们这里需要定义一个按钮,准备将它指引到操作界面上去。这里为了方便数据输入,在窗口编程界面频繁的使用了下面的程序。

Private Sub编号_Enter()

On Error GoTo AddNew

If IsNull(编号.Value) Then

编号.Value = "D" & Mid(Date, 3, 2) & Format(CLng(Mid(DMax("mid(编号,2,6)", "XL"), 3, 4) + 1), "0000")

End If

Exit Sub

AddNew:

If Err.Number = 94 Then

产品编号.Value = "D" & Mid(Date, 3, 2) & "0001"

End If

End Sub

意思是自动生成编号格式为T090001、T090002、T090003……的累加编号。

Private Sub 额定电流_Enter()

If IsNull(额定电流.Value) Then

额定电流.Value = DLast("额定电流", "XL")

End If

End Sub

自动重复上次输入的数据。这两段程序可以大幅减轻我们数据输入的工作量。

3.3 集合查询

表是存放数据的地方,一般情况我们都可以随意的修改里面的数据,其实是相当不安全的,我们查找调用的数据最好不要直接引用数据表,容易被误操作。这里我们建立一个查询,切换到SQL试图用SELECT “项目” from “表名称”将数据表的内容反映到查询,以后我们调用的数据由查询这里来,我们在调用的过程中就不能修改里面的内容,加强安全性。如果想把几张表合为一张,可以使用UNION语句来解决这个问题。

3.4 操作界面

这是软件的人机界面,主要在上面有链接到表窗口、各种查询功能的按钮。

3.5 登陆界面

为了防止无关人随意进入,特别制定的一个登陆界面,里面显示一些软件信息,以及密码输入界面。只需要简单的条件语句就可以定义密码。密码的设置五花八门,我这里只是一个彩蛋,Text77.Value我是默认的一个时间time()。

If Text72.Value = Left(Right(Text77.Value, 5), 2) Then

DoCmd.Close

DoCmd.OpenForm "操作界面"

大概意思是将密码定义为现在的分钟数,是一个随时间变化而变化的动态密码。

3.6 条件查询

这里可以定义一些查询条件,比如在某个时间段,产品检验合格情况,产品型号等,这里大量引用了where条件语句。将查询的结果显示在报表上面。

OpenReport“报表”

Where“条件”

3.7 生成报表

我们再在条件查询基础上,建立报表文件,将查询的内容调入报表相应的文本框。格式和具体内容根据工艺要求可以随时修改,只要保持整洁条例清晰就好了。报表上面推荐讲查询时间与查询条件都引用上去,让报表更加直观。

3.8 保存报表

生成的报表有的时候只是需要看一下,有的时候需要打印下来,当然还有的时候希望能保存为电子文档。这里推荐使用PDF文件打印机,可以通过打印成电子文档PDF的方式讲报表以图片的形式保存下来。

4 结语

数据库的无处不在,关键看人们怎么去应用。应用得当不但可以提高工作效率,还能检查工作中的各种不足,对工作状态的监控提供第一手的资料。数据库质量管理系统只是其中一个小小的应用,不但达到了很好的管理效果,还大量节约了人力,节约了大量纸张。

猜你喜欢
数据库质量
做梦导致睡眠质量差吗
关于质量的快速Q&A
质量投诉超六成
石器时代与质量的最初萌芽