1. 數據庫基礎知識
1.1數據庫的發展:
? 數據庫技術的主要目的是能有效地管理和存取大量的數據資源
? 數據管理技術經歷了人工管理階段、文件系統和數據庫系統、分布式數據庫系統、面向對象數據庫系統5個發展階段。
1.2數據庫系統基本概念:
? 數據庫DB:存儲在計算機存儲設備、結構化相關數據的集合。它不僅包括描述事物本身,而且包括相關事物之間的關系。
? 數據庫管理系統DBMS:是數據庫的機構,是一種系統軟件,負責數據庫中的數據組織、數據操縱、控制及保護和數據服務等。
? DBMS是位于用戶與操作系統之間的數據庫管理系統,是屬于OS支持下的系統文件。
? DBMS的組成包括1數據定義語言及其翻譯處理程序2數據操縱語言及其編譯(解釋)程序3數據庫運行控制程序4實用程序
? DBMS六個功能。
1數據模式定義
2數據存取的物理建構
3數據操縱:包括對數據庫數據的檢索、插入、修改和刪除等基本操作。
4數據的完整性、安全性定義與檢查
5數據庫中的并發控制與故障修復
6數據的服務。
? DBMS三種數據語言:
1數據定義語言DDL負責數據模式定義與數據物理存取構建
2數據操縱語言DML負責數據的操縱,如查詢與增、刪、改等
3數據控制語言DCL負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等
? 數據庫系統DBS:由5部分組成:硬件系統、數據庫、數據庫管理系統及相關軟件、數據庫管理員和用戶。其中數據庫管理員可以管理數據庫應用系統、數據庫管理系統、操作系統。
? DBS特點:
1共享度高,數據冗余度小
2采用特點的數據模型
3具有較高的數據獨立性
4有統一的數據控制功能
? DBS三級模式:1概念模式。是數據庫系統中全局數據邏輯結構的描述,是全體用戶公共數據視圖。2外模式。也稱子模式或用戶模式。它是用戶的數據視圖,也就是用戶所見到的數據模式,由概念模式推導而出。3內模式。又稱物理模式。給出了數據庫物理存儲結構與物理存儲方法。
1.3數據模型基本概念:
? 數據模型:其不僅表示反映事物本身的數據,而且表示相關事物之間的聯系。數據模型所表示的內容有三個部分,數據結構、數據操作與數據約束。
? 在E-R圖中用矩形表示實體,橢圓形表示屬性,菱形表示聯系。
? 實體。客觀存在并相互區別的事物稱為實體。屬性。描述實體的特性稱為屬性。聯系?,F實世界中事物間的關聯稱為聯系。實體集。同類型的實體的集合。實體型。屬性值的集合表實體,而屬性的集合表實體的類型。
1.4關系數據庫基本概念:
關系:一個關系就是一張二維表,每個表都有一個關系名。在中,一個關系存儲為一張表,具有一個表名。元組:在一個二維表中,水平方向的行稱為元祖。元祖對應表中的具體記錄。屬性:二維表中垂直方向的列。每一列有一個屬性名。在中表示為字段名。每個字段的數據類型、寬度等在創建表的結構時規定。數據項:也稱為分量,是每個記錄中的一個字段的值域:屬性的取值范圍。關鍵字:其值能夠唯一標識一個元祖的屬性或屬性的組合。在中表示為字段或字段的集合。外部關鍵字:如果表中的一個字段不是本表的主關鍵字,而是另一個表的主關鍵字和候選關鍵字,這字段就稱為外關鍵字。
? 關系數據模型:用二維表結構來表示實體以及實體之間聯系的模型。數據模型所表示的內容有三個部分,數據結構、數據操作與數據約束
? 數據關系操作:數據查詢、數據刪除、數據插入、數據修改
? 數據約束:
1實體完整性約束:該約束要求主鍵中屬性不能為空值。
2參照完整性約束:是關系之間相關聯的約束,不允許關系引用不存在的元組。
3用戶定義完整性約束:針對具體數據環境與應用環境由用戶具體設置的約束,反應了具體應用中數據的語義要求。
1.5關系運算基本概念:
1選擇運算:從關系中找出滿足給定條件的元祖的操作
2投影運算:從關系模式中指定若干屬性組成新的關系
3連接運算:連接是關系的橫向結合,連接運算將兩個關系模式拼接成一個更寬的關系模式,生產新關系中包含滿足連接條件的元祖
4自然連接:在連接運算中,按照字段值對應相等為條件進行的連接操作為等值連接,自然連接時去掉重復屬性的等值連接
1.6數據庫設計基礎
? 設計原則1關系數據庫的設計應遵從概念單一化“一事一地”原則2避免在表之間出現重復字段3表中的字段必須是原始數據和基本數據元素4用外部關鍵字保證有關聯的表之間的聯系
? 設計步驟1需求分析。(信息需求、處理要求、安全性和完整性要求)2確定需要的表。(每個表只包含一個關于主題的信息;表中不應該包含重復信息,且信息不應該在表之間復制)3確定所需字段。(每個字段直接和表的實體相關;以最小的邏輯單位存儲信息;表中字段必須是原始數據;確定主關鍵字字段)4確定關系 5設計求精
? 數據庫設計采用生命周期法:需求分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段。
1.系統簡介:
1)不僅能處理格式的數據庫,也能對諸如DBASE、、等格式的數據庫進行訪問。
2)采用OLE技術,能夠方便地創建和編輯多媒體數據庫,包括文本、聲音、圖像和視頻等對象。
3)支持ODBC標準的SQL數據庫的數據。
4)可以采用VBA( Basic )編寫數據庫應用程序。
? 數據庫的設計一般要經過
1分析建立數據庫的目的
2確定數據庫中的表
3確定表中的字段
4確定主關鍵字
5確定表之間的關系
? 數據庫的結構層次是:數據庫、數據表、記錄、字段。定義為一個擴展名.mdb文件,7種基本對象:表,查詢access數據庫窗口設計,窗體,報表,頁,宏,模塊。
? 表允許一個數據庫中有多個表。查詢查詢時數據庫設計目的的體現,其結果是靜態的。窗體是數據庫和用戶聯系的界面,利用窗體輸入界面。報表打印輸出數據,創建計算字段,對記錄分組。頁直接與數據庫中數據相連,進行查看、編輯、更新、刪除、篩選、分組以及排序。宏一系列操作的集合。模塊建立復雜的VBA程序。
? 關閉:[Alt]+[F4]或[Alt]+[F]+[X]
2. 數據庫和表的基本操作
2.1創建數據庫:
1)創建空數據庫。
2)使用向導創建數據庫。
2.2表的建立:
? 表的組成包括字段和記錄。
? 表由表結構和表內容兩部分構成。
? 表的結構:指數據表的框架,主要包括表名和字段屬性。1表名:是該表存儲在磁盤上(用戶訪問數據)的唯一標識2字段屬性:即表的組織形式,包括表中字段的個數,每個字段的名稱、數據類型、字段大小、格式、輸入掩碼、有效性規則。
? 字段命名規則:長度1至64個字符,不能以空格開頭,不包.![]’
? 數據類型:10種。
1文本。文本型字段可以保存文本或文本與數字的組合。
2備注。可保存較長的文本。
3數字
4日期/時間
5貨幣
6自動編號
7是/否
8 OLE對象表中字段的數據類型OLE對象是指字段允許單獨的"鏈接"或"嵌入"OLE對象??梢枣溄踊蚯度氡碇械腛LE對象是指在其它使用OLE協議程序創建的對象。例如Word文檔、Excel電子表格、圖像、聲音或其它二進制數據。
9超級鏈接
10查閱向導
?建立表結構:
1使用向導
2使用表設計器。在數據庫的表設計器中可以修改字段類型、設置索引和增加字段。要想刪除表中的記錄,需要打開表進行刪除。
3使用數據表
4定義主鍵。主鍵,也稱主關鍵字,是表中能夠唯一標識記錄的一個字段或多個字段的組合。在中,可定義3種類型主鍵,即自動編號,單字段,多字段
? 設置字段屬性。
1字段大小
2格式
3輸入掩碼:輸入掩碼用來指定輸入到字段中值的范圍。0必須輸入數字。9可以選擇輸入數據或空格。#可以選擇輸入數據或空格。L必須輸入字母。?可以選擇輸入字母(A-Z)。A必須輸入字母或數字。a可以選擇輸入字母或數字。&必須輸入一個任意的字符或一個空格。C可以選擇輸入任何的字符或一個空格。所有字符轉化成大寫。只為“文本”和“日期/時間”型字段提供輸入掩碼向導
4默認值:是指當用戶沒有為字段輸入值時,系統將自動為其賦予一個事先設定的值。
5有效性規則:用來判斷輸入的值是否符合設置的邏輯條件。
6有效性文本
7索引。索引時非常重要的屬性,能根據鍵值加速在表中查找和排序的速度,并且能對表中的記錄實施唯一性。同一個表可以創建多個唯一索引,其中一個可設置為主索引,且一個表只有一個主索引。
?輸入數據:直接輸入數據,獲取外部數據。
?表間關系的建立與修改。
1)表間關系的概念:一對一,一對多。
2)建立表間關系。在中,每個表都是數據庫獨立的一個部分,但每個表又不是完全孤立的,表與表之間是通過一個共同字段聯系在一起的。
3)設置參照完整性。參照完整性是一個規則系統access數據庫窗口設計, 使用這個系統用來確保相關表中記錄之間關系的有效性,并且不會意外地刪除、插入或更改相關數據。
2.3表的維護。
① 修改表結構:添加字段,修改字段,刪除字段,重新設置主關鍵字。
② 編輯表內容:定位記錄,選擇記錄,添中記錄,修改記錄,刪除記錄,復制記錄。
③ 調整表外觀。
1改變字段顯示次序
2調整行顯示高度
3調整列顯示寬度
4隱藏不需要的列
5顯示隱藏的列
6凍結列
7設置數據表格式
8改變字體。在數據表中,設置字體格式都是對整個數據表,不能單獨設置某個或某幾個字段的格式
2.4表的其他操作。
查找數據。替換數據。排序記錄。篩選記錄。
3. 查詢的基本操作
3.1查詢的功能:
1選擇字段
2選擇記錄
3編輯記錄。在查詢中,編輯記錄主要包括添加記錄、修改記錄、刪除記錄
4實現計算。在查詢中,查詢不僅可以找到滿足條件的記錄,而且還可以在建立查詢的過程中進行各種統計計算
5建立新表
6為窗體、報表或頁提供數據
3.2查詢分類:
? 選擇查詢是根據用戶指定的查詢的準則,從一個或多個表中獲取數據并顯示結果,但不能追加數據。在查詢中,選擇查詢可以只選擇表中的部分字段,通過選擇一個表中的不同字段生成多個表。也可以使用選擇查詢對記錄進行分組,并且對記錄進行總結、計數、平均以及其他類型的計算。
? 參數查詢是一種利用對話框來提示用戶輸入準則的查詢
? 交叉表查詢在創建交叉表查詢時,需要指定3種字段:一是放在交叉表最左端的行標題,它將某一字段的相關數據放入指定的行中;二是放在交叉表最上面的列字段,它將某一字段的相關數據放入指定的列中;三是放在交叉表行與列交叉位置上的字段,需要為該字段指定一個總計項,如總計、平均值、計數等。在交叉表查詢中,只能指定一個列字段和一個總計類型的字段。
? 操作查詢有四種1生成表查詢是根據查詢結果生成一張新表。2刪除查詢3更新查詢是將原來的舊值用新值替換,因此不能保持原數據不變。操作查詢與選擇查詢相似,但不同的是操作查詢是在一次查詢操作中對所得的結果進行編輯等操作。4追加查詢
? SQL查詢包括四種1聯合查詢2傳遞查詢直接將命令發送ODBC數據,它使用服務器能接受的命令,利用它可以檢索或更改記錄3數據定義查詢4子查詢如果一個查詢的數據源仍是查詢,而不是表,則該查詢稱為子查詢
? SQL查詢就是用戶用SQL語句來創建的一種查詢。
? 的所有查詢都可以認為是一個SQL查詢,因為查詢就是以SQL語句為基礎來實現查詢功能的
? 語句。WHERE子句說明檢索條件,條件表達式可以是關系表達式,也可以是邏輯表達式。ORDER BY子句可以根據一個列或者多個列來排序查詢結果,在該子句中,既可以使用列名,也可以使用相對列號。GROUP BY子句用于對檢索結果進行分組。
3.3查詢準則:
1運算符。用于指定一個字段值的范圍,指定的范圍之間用And連接。IN用于指定一個字段值的列表,列表中的任一值都可與查詢的字段相匹配。Is Null用于指定一個字段為空。Is Not Null用于指定一個字段為非空。
2函數。
3表達式?是通配任意單個字符*通配任意字符和字符串[]通配[ ]內的任意單個字符#通配任意單個數字。Like用于指定查找文本字段的字符模式
3.4創建查詢:
查詢可以根據已建查詢和數據表查詢創建查詢。查詢的視圖包括設計、數據表和SQL視圖、數據透視表視圖、數據透視圖視圖
1)使用向導創建查詢。
2)使用設計視圖創建查詢。在查詢設計視圖中既可以添加數據庫表也可以添加查詢。
3)在查詢中計算。查詢中的兩種基本運算時預定義計算和自定義計算
3.5操作已創建的查詢:
1運行已創建查詢
2編輯查詢中的字段
3編輯查詢中的數據源
4排序查詢的結果
4. 窗體的基本操作
4.1認識窗體:
? 窗體是數據庫應用中一個非常重要的工具,可以用于顯示表和查詢中的數據,并輸入數據、編輯數據和修改數據。
? 窗體有多個部分組成,每個部分稱為一個“節”,大部分窗體只有主體節。
4.2窗體分類:
1縱欄式窗體將窗體的一個顯示記錄按列分隔,每列的左邊顯示字段名,右邊顯示字段內容
2表格式窗體在一個窗體中顯示多條記錄的內容
3主/子窗體通常用于顯示多個表或查詢中的結果
4數據表窗體在外觀上跟數據表和查詢數據的界面相同
5圖表窗體
6數據透視表窗體
4.3窗體視圖:
1設計視圖
2窗體視圖
3數據表視圖
4數據透視表
5數據透視圖
4.4創建窗體:
1使用向導創建窗體
2 使用設計器創建窗體
? 創建窗體可以使用人工和使用向導兩種方式
4.5設計窗體:
1設計戶視圖組成:窗體設計視圖是設計窗體的窗口,它由5個節組成,分別是主題、窗體頁眉、頁面頁眉、頁面頁腳和窗體頁腳。在默認情況下,窗體"設計"視圖只顯示主體節。
2工具欄
3工具箱
4字段列表
? 在窗體"設計"視圖中,窗體和控件的屬性都可以在"屬性"對話框中設定。
4.6控件
4.6.1控件的含義及種類
控件是窗體上用于顯示數據、執行數據、裝飾窗體的對象
? 窗體控件類型分為綁定型、未綁定型與計算型3種。綁定型控件主要用于顯示、輸入、更新數據庫中的字段;未綁定型控件沒有數據源,可以用來顯示信息;計算型控件用表達式作為數據源,表達式可以利用窗體或報表索引用的表或查詢字段中的數據,也可以是窗體或報表上的其它控件中的數據。
? 1標簽控件:主要用來在窗體或報表上顯示說明性文本
? 2文本框控件:主要用來輸入或編輯字段數據
? 3復選框、切換按鈕、選項按鈕控件
? 4選項組控件:是選擇列表工具1如果選項組結合到某個字段,則只有組框架本身結合到此字段,而不是組框架的復選框、選項按鈕或切換按鈕2選項組可以設置為表達式或非結合選項組,也可以在自定義對話框中使用非結合選項組來接受用戶的輸入,可以根據輸入的內容來執行相應的操作3選項組是由一個組框、一個復選框、選項按鈕或切換按鈕組成
? 5列表框或組合框控件:在窗體中輸入的數據總是取自于查詢或取自某固定內容的數據,或者某一個表中記錄的數據,可以使用列表框或組合框控件。使用組合框既可以選擇又可以輸入文本,這是和列表框最大的不同,組合框的應用比列表框的應用要廣泛。
? 6命令按鈕控件
? 7選項卡控件:是分頁工具
? 8圖像控件
4.6.2在窗體中添加和修改控件
4.6.3窗體和控件屬性
1格式屬性:主要針對控件的外觀或窗體顯示格式設置的屬性。
2數據屬性:控件數據屬性:控件來源、輸入掩碼、有效性規則、有效性文本、默認值、是否有效、是否鎖定。窗體數據屬性:記錄源、排序依據、允許編輯、數據入口。
3事件屬性
4其他屬性
5全部屬性
? 在窗體屬性中,要使窗體中沒有記錄選定器,必須把"記錄選定器"的屬性值設置為否
? 窗體"屬性"對話框中"控件來源"屬性可以設置文本框的數據源
? 控件不可見屬性是:控件名稱. = false
? 名稱行屬性是是唯一能夠標識某一控件的屬性
5. 報表的基本操作
5.1報表的概念
? 報表的數據來源與窗體相同,可以是已有的數據表、查詢或者是新建的SQL語句,但報表只能查看數據,不能通過報表修改或輸入數據。報表對象的數據源可以設置為表名或查詢名。
? 報表有三種視圖。設計視圖,用于創建和編輯報表的結構。打印預覽視圖,用于查看報表的頁面數據輸出形態。版面預覽視圖,用于查看報表的版面設置。
? 報表設計區:報表頁眉節、頁面頁眉節、組頁眉節、主體節、組頁腳節、頁面頁腳節、報表頁腳節
5.2報表分類:
1縱欄式報表
2表格式報表
3圖表報表
4標簽報表
5.3創建報表:
1使用向導創建報表
2使用設計視圖創建報表
? “自動創建報表”向導分為自動創建報表:縱欄式和自動創建報表:表格式兩種
? 報表設計時分頁符以短虛線標志顯示在報表的左邊界上
5.4編輯報表:
1設置報表格式
2添加背景圖案
3添加日期和時間
4添加分頁符和頁碼:=”第”&[Page]&”頁/總”&[Pages]&”頁”
5使用節
6繪制線條和矩形:要設計出帶表格的報表,需要向報表中添加直線或矩形完成表格線的顯示。
5.5報表排序與分組:
默認情況下,報表記錄是按照自然順序排列的。要實現排序與分組的統計操作,通過設置排序與分組屬性進行。
5.6使用計算控件:
報表設計中頁碼的輸出、分組統計數據的輸出等均是通過設置綁定控件的控件源為計算表達式形式而實現的,這些控件就稱為計算控件。文本框是最常用的計算控件。計算控件的來源屬性一般設置為等號開頭的計算表達式。
5.7創建子報表:
一個主報表最多只能包含兩級子窗體或子報表
6. 頁的基本操作
6.1數據訪問頁的概念:
有兩種視圖方式:頁視圖和設計視圖
? 中數據訪問頁的作用是發布數據庫中的數據
? 在數據訪問頁的工具箱中,圖標的名稱是圖像鏈接
6.2創建數據訪問頁:
1自動創建數據訪問頁
2使用向導數據訪問頁
滾動字體圖標 記錄瀏覽圖標 展開/收縮圖標添加命令按鈕圖標
7. 宏
7.1宏的基本概念:
1宏是由一個或多個操作組成的集合,其中每個操作都能自動執行,并實現特定的功能。
2宏可以在"宏"窗口、"數據庫"窗口、菜單中單獨運行,也可以運行宏組中的宏或另一個宏,還可以為響應窗體、報表上的控件上所發生的事件而運行宏。
3通過定義宏可以選擇或更新數據。
4宏可以是窗體或報表上的事件代碼。
5宏并不能單獨執行,必須有一個觸發器,而這個觸發器通常是由窗體、頁及其上面的控件的各種事件來擔任的
7.2宏的基本操作:
多個操作構成的宏,執行時按排列順序依次執行
? 創建一個宏:創建宏時至少要定義一個宏操作,并要設置對應的宏操作參數。在宏的設計窗口中,可以隱藏的是宏名和條件。打開可以添加宏的名詞,關閉也可以添加宏的名詞。命名為的宏在打開數據時會自動運行
? 創建宏組:調用宏組中宏的格式為:宏組名.宏名
? 在宏中使用條件。對于重復條件,可用…符號來代替重復條件式
8. 模塊
8.1模塊的基本概念:
模塊是中一個重要對象,它以VBA( Basic for )為基礎編寫,以函數過程()或子過程(Sub)為單元的集合方式存儲。模塊分類模塊和標準模塊兩種。
? 類模塊:窗體模塊和報表模塊都屬于類模塊,它們從屬于各自的窗體或報表
? 標準模塊:用于存放公其他數據庫對象使用的公共過程
? 將宏轉換為模塊:實際上,所有宏操作都能轉換為相應的模塊代碼,它可以通過另存為模塊來完成。
8.2創建模塊:
過程是模塊的組成單元,過程分兩種類型:Sub子過程函數過程
? 在模塊中加入過程。VBA提供一個關鍵字Call,可顯示調用一個子過程Sub。函數過程不能用Call來調用執行,需要直接引用函數的過程名,并由接在函數過程名后的括號所辨別。
? 在模塊中執行宏。
8.3 VBA程序設計基礎:
8.3.1面向對象程序設計的基本概念
8.5.2 VBA編程環境:
窗口主要由標準工具欄、工程窗口、代碼窗口、屬性窗口、立即窗口。立即窗口時用來進行快速表達計算、簡單方法操作及進行程序測試的工作窗口。
8.5.3數據類型和數據庫對象
? 標準數據類型。整數長整數Long單精度數雙精度數貨幣字符串布爾型日期型Date變體類型
? 用戶定義的數據類型可以用Type…End Type關鍵字間說明
? Dim,,…As定義用戶類型變量
? 數據庫對象:數據庫連接窗體Form報表控件查詢表命令
8.5.4常量,變量:
局部范圍Dim, …As模塊范圍Dim, , …As全局范圍…As。要在過程的運行時保留局部變量,可以用關鍵字代替Dim定義靜態變量
? ()AS 從0開始的數組
? Const符號常量名稱=常量值
8.6 VBA控制流程語句
? 執行語句可以分三種結構。順序結構:按照語句順序順次執行。分支結構:又稱選擇結構,根據條件選擇執行路徑。循環結構:重復執行某一段語句。
? 賦值語句。[Let]變量名=值或表達式 Let為可選項
? 條件語句。①If-Then語句②If-Then-Else語句③If-Then-語句④ Case-End 語句⑤條件函數。IIf函數:IIf(條件式,表達式1,表達式2);函數:(條件式1,表達式1[,條件式2,表達式2[,條件式n,表達式n]]);函數:(索引式,選項1[選項2,…[,選項n]])
? 循環語句。①For-Next②Do While-Loop③Do Until-Loop④Do-Loop While⑤Do-Loop Until⑥While-Wend
? 標號和GoTo語句
8.7過程調用和參數傳遞
? 過程調用
? 參數傳遞。必須的,形參名稱。type可選項,傳遞給該過程的參數的數據類型??蛇x項,表示參數不是必需。ByVal可選項,表示參數按值傳遞,傳值調用。ByRef可選項,表示參數按地址傳遞??蛇x項,只用于形參的最后一個參數。
8.8 VBA程序錯誤處理:
“On Error GoTo 標號”語句在遇到錯誤發生程序轉移到標號所指位置代碼執行。“On Error Next”語句在遇到錯誤時不會考慮錯誤?!癘n Error GoTo 0”關閉錯誤處理。
8.9 VBA程序的調試:
設置斷點,單步跟蹤,設置監視點。
常用函數
算數函數
Abs() 絕對值
Int() 取整
Fix()
Round(,)
Rnd()
Int(100*Rnd+1) 1至100隨機數 隨機數
文本函數
Left(,) 字符串截取
Right(,)
Mid(,
[,])
Len() 字符串長度
Instr([],,
[,]) 字符串檢索
日期/時間函數
Date( ) 返回系統當前
日期或時間
Time( )
Now( )
轉換函數
Asc() 字符串轉換字符代碼
Chr() 字符代碼轉換字符
Str() 數字轉換成字符串
Val() 字符轉換數字
消息函數
(提示[,標題][,默認]) 利用提示框輸入
(提示[,按鈕、圖標和默認按鈕][,標題]) 提示框
常用的宏操作命令
基本操作的功能是打開窗體
打開表
為窗體或報表上的控件設置屬性值
Close如果不指定對象,其基本操作關閉的是當前窗體
常用事件
Enter進入,發生在控件實際接收焦點之前