Access数据库创建及操作 mfc创建access数据库

Access数据库创建及操作一、创建数据库创建新数据库文件的方法有很多。主要有两种方法:一、空白数据库,直接结构与数据同时进行输入(如果果建立完成后再修改结构,原内容可能丢失);二、结构和数据分两步进行了操作(推荐);那么第一种方法注意在ACCESS主窗口中区域左上角的"空白数据库"按钮。该按钮和"文件"菜单中的"新建"按钮都可以展现主窗口右侧的"空白数据库"区域。单击二者中的任何一个按钮都可以转换到主窗口,如图右所示。"空白数据库"区域代替了主窗口中的最近打开的数据库列表。

在"空白数据库"区域的"文件名"框中输入新数据库的名称。默认情况下, Access 会在一个最近使用Access打开的Windows文件夹中创建新的数据库文件。如需使用不同的文件夹,可以使用"文件名"右侧的文件夹图标进行浏览并将数据库创建在所需的位置。

Access 为新数据库提供了Dat abasel.accdb的默认名称。

需确保提供的名称可以识别。在图右中,新的数据库命名为教务信息管理.accdb (扩展名.accdb为可选项,这是因为在未提供扩展名时, Access 将自动提供扩展名)。创建完新的数据库后, Access将自动打开该数据库。

图右 在"空白数据库" 区域的"文件名"框中输入新数据库的名称

注意: Access 2007 可以识别所有以前版本的Access数据库文件. 默认情况下,将使用2007 格式(使用.accdb 扩展名),但是可以指定Access 2000、2002-2003或者Access 2007 为默认格式.使用"文件"->"Access 选项" ~"常用",选择"默认文件格式"选项并且选定所需要的格式. 例如,当一个Access 2007 文件大部分内容都在Access 2000数据库中完成,此时就应该选择2000 格式来保留向后兼容.依然使用Access 2000 的用户将无法打开以_accdb格式创建的Access 文件.

下图新的“教务信息管理”数据库创建完成Access 2007 可以直接兼容Access 2000、2002-2003 和2007 等数据库。早期的Access数据库文件(例如97 或者95) 必须转换为2000、2002-2003 或者2007 格式才可以在Access 2007中使用。Access会检查正在打开的数据库文件,如果确定该文件必须进行转换,就会呈现出图下中的"数据库增加功能"对话框。 下图 打开旧版的Access数据文件会激活"数据库增加功能"对话框

在"数据库增加功能"对话框选择为"是"可以打开第二个对话框(不显示〉询问转换数据库的名称。选择No就会以只读模式打开旧版本的数据库,此时允许查看但不可以修改数据库中的对象。该过程有时称为Æ!J!J旧数据库。

在必须要理解旧数据库的设计时,如果用户仍然使用旧的数据库且无法升级至Access2007格式,那么启用一个旧数据库是非常必要的。

如果按书中所举的例子操作,请注意我们选择了教务信息管理.accdb作为所创建数据库文件的文件名。该数据库用于我们的假定业务Access Auto Auctions 。输入文件名以后,Access将创建一个空数据库。

了解Access如何处理数据:

Microsoft Access处理数据的方法很多.出于简便,本书中太多数实例都使用了存储于本地中的数据.本地在包含于Access • accdb文件中.实例的情况目前就是如此.

在很多专业开发的Microsoft Access应用程序中,实际的保存在一个与其他界面对象(窗体、报表、查询、页面、宏和模块)分离的数据库中(通常称为后端).放后端数据文件位于网络中的一个文件服务器上,每个用户在其计算机主都有一个前端数据库的复本(包含窗体和报表).这样做的目的是使应用程序更易于维护.通过将数据和在分离到另一个数据库中,维护工作(建立新的索引、修复在等)就会变得更容易并且不会影响到系统中的其他内容.

例如,在使用多用户系统并且在数据库中发现窗体或者报在有问题时.如果所有的数据和界面对象都处于同一个数据库,就必须在修复破损的窗体或者报表时关闭系统一一在对窗体或者报在进行修复时其他用户就无法使用应用程序.

通过将数据从其他的对象中分离出来,就可以在其他用户处理数据的同时修复错误对象.处理克问题之后,就可以向其他用户支付新的是改,这些用户就可以向他们的本地数据库中导入宵体或者报在.

另外,从界面对象中分离数据还有一个是为重要的原阁:安全性.通过结护数据库内部的数据,就可以更好地来控制信息.由于实现了数据库与用户的物理分离,用户不可能意外或故意删除修改后端数据库文件.而且,后精数据易于备份和维护,并且不会影响到用户.

使用Access • accdb数据库中的开发应用程序,以后可以使用"数据库拆分器'向导自动删除.accdb 文件中的表以便于分离Access • accdb文件.在本书的第6 章中对该过程做了解释.

例如:

1、创建数据库:启动Access2007,创建“教务信息管理”数据库;

2、创建数据表:在数据库中创建“基本情况表”、“工资表”、“开课表”(各表中的字段名称和记录信息如上表所示);
3、设置字段类型:各数据表中部分字段信息类型设置参考如下:

表1:基本情况表(字段名,类型,大小)

工号(类型:文本;大小:7);姓名(类型:文本;大小:8);性别(类型:文本;大小:2);婚否(类型:逻辑型;格式:真/假);出生年月(类型:日期/时间);年龄(类型:数字;大小:整型);职称(类型:文本;大小:6);是否党员(类型:逻辑型;格式:是/否)。注意:逻辑型(L型)即真假型(True/False)或是否型)

注意:在Access建表中若直接把表结构和数据一起制作填写时,每个字段的类型和大小无法修改,只能是默认的类型和大小,若修改改跳转到设计视图中进行,但这时在保存时原来的内容可能会丢失。所以推荐大家建立数据库采用两步走的措施:一、先创建结构(包括类型及属性的设置);二、数据视图中填充数据。教学课件及视频:

第6章 Access数据库 -第1节(数据库的基本操作)

第6章 Access数据库 -第2节(数据表的基本操作)

二、主键

1、主键及作用。
首先主键名是唯一的不重复的,用于标识此行数据的线索,也就是说,很多数据有可能重复,但主键不可能重复,所以你要对数据库进行删除,修改,查询时就有法可依了,找他的主键是最精确的,假如找其它的字段有可能重复列出多个数据.例如
id(主键) name
1 abc
2 cba
3 abc
你要找abc的话会出现两行,但是如果找id=1的话就一行,也就是说用主键可以精确的对数据库进行操作。
2、access怎样给字段定义主键
设定主键的目的就是为了让数据表中的数据能够被唯一的识别。主键有单主键,复合(多)主键。一般数据表的主键就是ID,类似的ID有学生号、工号等。一般数据表都要定义主键,否则系统会提示你建立主键,那么怎样建立主键呢?

单键定义步骤/方法

  1. 打开你的access,并打开你要设置主键的数据表,然后点击 开始——视图。



    2. 在视图的下拉菜单中,点击 设计视图。


  2. 来到了设计视图面板,我们在要设立主键的字段的右边,也就是红色箭头的位置右键单击


  3. 在弹出的菜单中,我们选择 主键。这样就给ID这个字段建立的主键。


  4. 另一个方法就是我们选中将要建立主键的字段,然后再菜单栏上点击 主键。


  5. 最后点击左上角的保存按钮,将主键进行保存。


    Access数据库创建及操作 mfc创建access数据库
  6. 点击视图按钮,返回数据表视图。


复合(多)主键定义步骤/方法

在表设计视图里,按住[Ctrl]键,分别整行点击(左边方块)要设为主键的字段后,鼠标放在任意一个已选中的行上右击快捷菜单选[主键]即可!
注意:有空记录的字段不能设置主键.解决的办法是删除空白记录从新设置主健。
三、更改表名
对创建好的数据库中可能建立了很多表,但是后来发现表名不符合要求,要重新命名,怎么做呢?很容易,其操作与原来的文件的重命名完全一样的,右击表名->重命名->输入正确的文件名即可。    注意:重命名表之前一定要把当前的表保存关闭编辑状态,现行进行改名,否则禁止更改。
四、查询    
如果查询涉及到多表的时候,要对多表建立关联(一般使用主键建立关联),查询设计之前要对ACCESS2007软件提示点击“选项”->选“启用此内容”(要么系统不能正常运行)



1、关联:是进行多表操作必不可少的设置,如果不建立关联那对一个表操作涉及到另一表的内容是无法正确作用到的,或者是每一当前表中的记录都会对应另外表中的每一个记录,产生很多的多余的记录,要掌握多个表建立联系、修改关联、删除关联。如:创建表之间的关系:建立“基本情况表”、“工资表”、“开课表”三者的关系。下面关系
特别注意:在建立表关系时一定是每一个表中都存在且能唯一确定的字段建立的关联才有意义,并且建立的关联字段不要作为条件使用。如下面的作业实例中查询姓为“王”的两个基本情况表和工资表中的信息,若使用“姓名”进行关联,这时条件又是使用的姓名判断的,所以会出现错误。解决的办法是把建立关联的字改为除姓名之外的其它字段。如工号或编号等。
2、查询包括6种查询:选择查询(包括"赋值查询"或称为“参数查询“)、生成表查询、删除查询、追加查询、交叉表查询、更新查询。
如(1)创建名为“男性职工”的查询,列出“基本情况表”数据表中部门为“后勤处”和“信息部”的所有男性职工的信息。结果是:(SQL程序)
 SELECT 基本情况表1.*
FROM 基本情况表1WHERE (((基本情况表1.性别)="男") AND ((基本情况表1.部门)="后勤处"))OR (((基本情况表1.性别)="男") AND ((基本情况表1.部门)="信息部"));(选择查询)(2)如果查询过程中会提示你输入查询关键字内容是“赋值查询”。如右
根据性别查询男或者女性的,查询结果如果下图
(3)如果查询中有子查询情况,SQL查询语句中,什么叫子查询?一个select...FROM是一个基本查询,如果在一个SELECT...FROM中嵌套着另外一个SELECT...FROM语句,就称之为子查询,其中被嵌套在里面的查询语句为子查询比如sql查询语句A的查询条件是由sql查询语句B的结果作为条件select * from table_a t where t.row_namein(select tt.row_name from table_b tt);
(select tt.row_name from table_b tt)就是一个子查询又比如查出生年月最小的(最大)/年龄最小(最大)等类的所有信息的结果都可以用子查询实现,如下查询出生年月最小的记录信息:SELECT 基本情况表1.*, 基本情况表1.出生年月
FROM 基本情况表1
WHERE (((基本情况表1.出生年月)=(select min([出生年月]) from 基本情况表1)));
有些选择查询可能涉及到多表操作和条件书写的复杂性如作业中的:创建名为“王某”的查询,要求:显示姓王的人员信息(包括:姓名、性别、工作日期、基本工资、津贴。SQL语句:SELECT 工资表.*, 基本情况表.*
FROM 工资表 INNER JOIN 基本情况表 ON 工资表.姓名 = 基本情况表.姓名
WHERE ((Left([基本情况表.姓名],1)="王"));另外再举一例:列出工号前2位等于“11”的男性职工的信息。SQL语句:SELECT rsda.*

FROM rsda

WHERE ((Left([rsda].[工号],2)="11") AND ((rsda.性别)="男"));


(4)创建名为“A51-基本工资合计”的查询,要求:统计“工资表”中男性职工的“基本工资”字段总和,并将结果赋给变量"A51-基本工资合计"(新字段"A51-基本工资合计")。

首先用到多表要建立多表的关联,然后再查询(其中涉及到一个新的字段建立和赋值问题,注意新字段和公式必须写在字段行,格式的正确书写,比较一下EXCEl中的公式基本一致,不一样的是引用的字段要用中括号而EXCEL引用的是地址坐标):SELECT Sum([基本工资]) AS [A51-基本工资合计]
FROM 工资表 INNER JOIN 基本情况表1 ON 工资表.ID = 基本情况表1.ID
WHERE (((基本情况表1.性别)="男"));
注意:在书写条件的时如果条件类型是下列类型值是不一样滴:文本型条件值要加引号,如性别="男";数值型直接等于(大于,小于等),如,基本工资=2000;日期型值两端加井号,如,出生日期=#1980-06-09#;逻辑型的值为真/假,如,党员否=True/False。(5)更新查询凡遇到有更改表中的原有值,填充内容等都使用更新查询。如计算“年龄”、“补发工资”、“实发工资”,把姓名为“某某”的值改你们辅导员的姓名等都使用更新查询。
下面要求:
为部门是“总务处”的职工每人增加15%的补贴(补贴=补贴*1.15)。

UPDATE rsda SET rsda.补贴 = [补贴]*1.15

WHERE(((rsda.部门)="总务处"));

(6) 生成表查询

生成表查询从一个或多个表中检索数据,然后将结果集加载到一个新表中。该新表可以驻留在已打开的数据库中,您也可以在其他数据库中创建该表。

通常,在需要复制或存档数据时,可创建生成表查询。例如,假设您有一个或多个包含过去的销售数据的表,并且要在报表中使用这些数据。因为交易至少已过了一天,所以销售数据不会更改,而不断运行查询来检索数据可能需要花费一些时间-当对大型数据存储运行复杂查询时尤其如此。将数据加载到一个单独的表中并使用该表作为数据源,这样可以减少工作量并提供一种方便的数据存档。在执行操作时,请记住,新表中的数据严格说来只是一个快照;该新表与其源表之间没有任何关系或连接。

例如,按照“部门”升序生成一个名为“人事表1”的新表,其中包含4个字段:工号、姓名、性别和部门。

SELECT pay.工号, pay.姓名, pay.性别, pay.部门 INTO 人事表1

FROM pay

ORDER BY pay.部门;

(7) 交叉表查询:

我这里指的交叉表,比如Employees表中City字段代表了城市的名称,TitleOfCourtesy代表称呼,我们希望按照City和TitleOfCourtesy的情况来统计ReportsTo字段的合计数(本统计没有任何实际意义,只是挑选一些记录包含重复内容的字段来说明情况),并显示成以下格式:(TitleOfCourtesy作为行,City作为列)

TitleOfCourtesyLondonCityRedmondCitySeattleCity
Dr.
Mr.12
Mrs.2
Ms.54

(8) 删除查询:

把一个表中指定的记录物理删除。

1)要求物理删除1980年以前(不含1980年)出生年月的部门为“基础部”的职工记录。

DELETE rsda.出生年月, rsda.部门

FROM rsda

WHERE (((Year([出生年月]))<1980) AND ((rsda.部门)="基础部"));

报告中的第12、删除查询(1)在数据库中,要求物理删除基本工资在1000以下且性别为“男”的职工记录,查询命名为“删除<1000”。

DELETE 工资表.基本工资, 基本情况表.性别, 工资表.*,基本情况表.*
FROM 工资表 INNER JOIN 基本情况表 ON 工资表.姓名 = 基本情况表.姓名
WHERE (((工资表.基本工资)<1000) AND((基本情况表.性别)="男"));

注意:如果是单表删除,上面的数据源选择就可以了,但是如果是多表操作那就需要对多表进行关联,特别注意的是关联的字段一定是主键,其它主键都不能要。一般关联要找能一一对应的,当然也可以是一对多的,多对多的。并且强调的是,其实这里由于用到关联操作(删除),还应该进行参照完整性和级联删除相关记录的设置,如下图,在这里非专业的学生可以不考虑了,就用课堂讲解的去做.



(9)追加表查询:

把一个表中的数据追加到另一个表中。

填写SQL命令,要求将所有男性职工的记录追加到名为“追加表”的表中,只需要其中的4个字段:姓名、性别、工资、补贴。

INSERT INTO 追加表 ( 性别, 姓名, 工资, 补贴 )

SELECT pay.性别, pay.姓名, pay.工资, pay.补贴

FROM pay

WHERE (((pay.性别)="男"));


第6章 Access数据库 -第3、4节(数据查询)

五、窗体

窗体主要是显示和管理数据的界面,给用户或操作员一个优美的平台对数据进行各种浏览和操作管理。如有一个总结表,建立一个简单的窗体管理这个总结表,方法如下:

1、创建:单击菜单创建->窗体设计



2、出现带有方格的空白环境,然后使用标签工具设计窗体表题“总结管理”、下面添加三个标签“总结”、“评语”、“成绩”;三个标签下添加三个文本框,如图:




3、打开窗体属性窗口

在属性窗口选择窗体,记录源中选择对应的表


4、分别选中三个文本框,在属性窗口控件来源选对应的三个字段:总结、评语、成绩

5、视图中选择窗体视图

6、窗体显示在窗口中可以在对应对话框中输入数据,如总结->保存。

补充一下综合查询(报告第15)

(1)创建名为“综合-不及格名单”的查询,查询所有不及格的学生的学号,课程号和成绩,要求以课程号(升序)为第一关键字。

SELECT成绩表.*
FROM 成绩表
WHERE (((成绩表.成绩)<60))
ORDER BY 成绩表.课程号;

(2)创建名为“综合-周学时”的查询,查询周学时小于3或大于5的信息,并在查询中显示字段:课程号、课程名和周学时。

SELECT 课程表.课程号,课程表.课程名, 课程表.周学时
FROM 课程表
WHERE (((课程表.周学时)<3)) OR (((课程表.周学时)>5));

(3)创建名为“综合-学号代码”的查询,在“学生表”中,要求利用学号的后3位产生一个新字段“学号代码”,并在查询中显示原来的所有字段和“学号代码”字段。

SELECT 学生表.*,Right([学号],3) AS 学号代码
FROM 学生表;

(4)创建名为“综合-最高成绩”的查询,查找班级“计科09-1”成绩信息中的最高分,其中数据由计算得到,结果赋给变量Z60。

SELECTMax([成绩]) AS Z60
FROM 学生表 INNER JOIN 成绩表 ON 学生表.学号 = 成绩表.学号
WHERE (((学生表.学号)="计科09-1"));

(5)创建名为“综合-年龄统计”查询。统计并输出所有男生的平均年龄,并将结果赋给变量Z61。

SELECTAvg([年龄]) AS Z61
FROM 学生表
WHERE (((学生表.性别)="男"));

(6)创建名为“综合-更新”的查询,将“学生”表中“团员否”字段中的值清除。



(7)在数据库中,要求按照“学分”降序生成一个名为“综合-学分排序”的新表,其中包含3个字段:课程号、课程名、学分。

SELECT 课程表.课程号,课程表.课程名, 课程表.学分
FROM 课程表
ORDER BY 课程表.学分 DESC;



(8)在数据库中,要求将所有“计科09-1”班的男生记录追加到名为“综合-追加表-计科0901”的表中,只需要显示其中的4个字段:学号、姓名、性别和班级号。

INSERT INTO[综合-追加表-计科0901] ( 学号, 姓名, 性别, 班级号 )
SELECT 学生表.学号, 学生表.姓名, 学生表.性别, 学生表.班级号
FROM 学生表
WHERE (((学生表.性别)="男"));


(9)创建名为“综合-删除”的查询,将“学生表”里所有姓名含有“红”字的记录删除。

SELECT基本情况表.*
FROM 基本情况表
WHERE ((基本情况表.姓名) Like "红*" And (基本情况表.姓名) Like "*红" And (基本情况表.姓名)Like "*红*");
注意:上面的操作我把几种情况写在了一起,是为了由浅入深地讲解方便,大家要分开理解。按照要求写一种情况可能就可以了,第四种情况包括了前三种条件的书写方法。

另外,也可以使用函数Left()、Mid()、Right()取条件。前面在Excel和Access讲过不再论述。

(10)创建名为“综合-姓名参数”的查询,将“姓名”字段作为参数,设定提示文本为“请输入学生姓名中任意一个字符”。查询结果显示6个字段:学号、姓名、性别、班级号和成绩。

SELECT基本情况表.*
FROM 基本情况表
WHERE (((基本情况表.姓名) Like [请输入要查询的姓名中的任意字符:] &"*"));

友情链接有这样的题:

23、设有数据库“rsda”,考Access的同学请下载文件“rsda.mdb”。(命令可以使用SQL语句)。要求统计并输出所有男性的平均年龄,并将结果赋给变量Z61。
咋做?
参考答案如下:
SELECTAvg(Year(Now())-Year([出生年月]))ASz61
FROMrsda
WHERE(((rsda.性别)="男"));



  

爱华网本文地址 » http://www.aihuau.com/a/25101016/322230.html

更多阅读

windows系统hosts文件位置及操作 windows7操作系统教程

windows系统hosts文件位置及操作——简介hosts文件相当于一个个人的DNS,当你访问某个域名时,是先通过hosts进行解析的,没有找到才进一步通过外网DNS服务器进行解析。本文将讲解hosts文件在windows系统中的位置及如何操作hosts文件。wi

《刺客信条:兄弟会》键位说明及操作说明

中文名: 刺客信条:兄弟会外文名: Assassin's Creed:Brotherhood游戏类别: 动作冒险游戏平台: PS3 / Xbox360 / PC开发商: 育碧发行商: 育碧发行时间: 2011-2-22主要角色: Ezio语言版本: 英文制作进度: XBOX版已发售、PC版2月22日发售《刺客信条

周二展望及操作策略 黄金操作策略

周一市场在两桶油涨停以及资源板块整体大涨带领下继续上涨,资源板块的大涨符合我们上周以来一直看好分析观点的。而市场经过上周四五预期中的短线剧烈震荡夯实后,在今天突破4444高点再创上涨新高的过程,就是前面分析的“周五指数仍有再

自助办税终端主要功能及操作流程 北京自助办税服务终端

尊敬的燕山地区纳税人:为进一步提高办税效率,让纳税人享受到科技进步带来的便捷服务,在经前期准备和运行检测后,我局现已成功启用自助办税终端(ARM)。该终端为纳税人提供免费、便捷的自助办税平台,减少纳税人排队等候时间,为纳税人提供一种

微格教学概念特点及操作程序 化学概念的教学特点

微格教学的概念及其特点一、微格教学的基本概念微格教学,英文为Microteaching,又被译为微型教学、微观教学、小型教学等。微格教学的创始人之一爱伦(W?Allen)说它是“一个有控制的实习系统,它使师范生有可能集中解决某一特定的教学行

声明:《Access数据库创建及操作 mfc创建access数据库》为网友最暖话分享!如侵犯到您的合法权益请联系我们删除