熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

MS Jet SQL for Access 2000中級篇(IV)

2013-11-15 14:38:11  來源: SQL Server 

  現在我們已經討論了中級SQL的語法那麼讓我們看看在一個Access應用程序中我們可以使用它的一些途徑
  
  數據庫范例
  
  作為這篇文章的附帶這裡有一個叫acIntSQLmdb的數據庫范例
  
  在acIntSQL中的任一處都是基於本文所提到的所有主題並且它通過查詢和范例的代碼演示了我們所討論的不同SQL語句
  
  在acIntSQL中所使用到的許多部分查詢都是基於特定工作表中存在和包含的數據或者是基於其它已經存在的數據庫對象如果你由於丟失數據而在運行一個查詢產生故障打開工作表重置窗體並單擊工作表重置按鍵這將會重新生產工作表和其中原始缺省數據如果要手動通過工作表重置過程你需要按照下面的順序執行這些查詢過程
  
  Drop Table Shipping
  Drop Table Invoices
  Drop Table Customers
  Drop Table CreditLimit
  Create Table Customers
  Create Table Invoices
  Create Table Shipping
  Create Table CreditLimit
  Populate Customers
  Populate Invoices
  Populate Shipping
  Populate CreditLimit
  
  查詢
  
  查詢就是指存儲在Access數據庫中並可以隨時調用的SQL 語句也可以直接被Access 用戶界面或Visual Basic? for Applications (VBA)編程語言調用查詢可以使用Access Query Designer來建立Access Query Designer時一個可以很容易建立SQL語句的強大的可視化工具或者你也可以通過直接在SQL視圖窗口輸入SQL語句來建立查詢
  
  如同在Microsoft Jet SQL for Access 基礎篇一文中所述 Access把數據庫中所有面向數據的任務轉化為SQL 語句要演示這一點讓我們使用Access Query Designer來建立一個查詢
  
  打開acIntSQL數據庫
  
  (單擊此處拷貝acIntSQLmdb 數據庫例子)
  
  確保tblCustomers 和 tblInvoices這兩個表單已經創建並且其中包含有數據
  在數據庫窗口中從Objects條中選擇Queries選項
  在數據庫窗口工具條裡單擊按鍵 New
  在New Query對話框中選擇Design View並單擊OK
  在Show Table對話框中選擇tblCustomers並單擊Add接著選擇tblInvoices 並單擊Add接著單擊Close按鍵
  在tblCustomers 域名列表中選擇Last Name 域並把它拖到設計表格中的第一個域中
  在tblInvoices 域名列表中選擇InvoiceDate 和 Amount域並把它們拖到設計表格中
  在設計表格中InvoicwDate域的Sort屬性裡選擇Ascending
  從Access菜單條中選擇View並單擊SQL View這樣就打開了SQL View 窗口和顯示了在查詢中Access正在使用的SQL語法
  注意 這個查詢類似於存儲在acIntSQL 數據庫中的Join Inner查詢
  
  嵌入語句
  
  嵌入SQL 語句就是指你在Visual Basic for Applications (VBA) 編程語言中使用SQL 語句雖然深入討論如何使用VBA超出了本文的范圍但如何使用程序來運行SQL 語句卻是一件簡單的工作
  
  在acIntSQL數據庫中有兩個使用內部SQL語句的窗體需要通過Jet OLE DB provider 和 ADO來運行就是演示數據定義語句的 Intermediate DDL 窗體以及演示數據處理語句的Intermediate DML窗體
  
  中級DDL 語句
  
  這個acIntSQL數據庫有許多關於你可以用來管理你的數據庫結構的SQL 語句的范例有一部分數據定義語言 (DDL) 語句被以數據定義查詢的方式存儲而其它的則在程序設計代碼的內部作為內聯SQL使用如果你要使用這些DDL例子你需要在運行它之前刪除一些數據庫對象例如如果你想運行創建當前數據類型的查詢你就先要確定當前數據表單不存在如果不是那麼這個查詢就會返回一個信息告訴你這個表單已經存在在運行任何DDL 例子之前檢查它所要創建或改變的數據庫對象確定其已經被設定好這樣程序才能完全的運行
  
  在內聯DDL 語句范例中同樣的建議仍然是適用的檢查並設定它們會影響的數據庫對象以確保DDL 語句的順利運行
  
  一般來說內聯DDL 語句只是通過簡單設定一個ADO Connection對象來運行並將SQL 語句傳送給 Connection對象的運行程序下面是來源於在中級DDL語句窗體的二進制數據類型的輸入輸出
  
  Private Sub cmdBinary_Click() Dim conDatabase As ADODBConnection
  Dim SQL As String
  On Error GoTo Error_Handler
  Set conDatabase = ApplicationCurrentProjectConnection
  注意: Fields through can be created through both
  SQL View and the Jet OLEDB Provider
  Fields and can only be created through the
  Jet OLE DB provider
  
  SQL = CREATE TABLE tblCodeBinaryDataTypes ( & _
  Field_BINARY BINARY & _
  Field_BINARY BINARY() & _
  Field_VARBINARY VARBINARY & _
  Field_VARBINARY VARBINARY() & _
  Field_BVARYING BINARY VARYING & _
  Field_BVARYING BINARY VARYING())
  conDatabaseExecute SQL
  MsgBox The BINARY datatypes table has been created!
  conDatabaseClose
  Set conDatabase = Nothing
  Exit Sub
  Error_Handler:
  MsgBox ErrDescription vbInformation
  End Sub
  
  運行過其中一個DDL 語句後在設計視圖中打開被影響的數據庫查看產生了什麼變動如果DDL 語句影響了表單之間的關聯打開編輯關聯窗口查看其變動例如讓我們檢查一下在中級DDL語句窗體中的Alter Table w/ Fast Foreign Key輸出指令和按鍵
  
  打開acIntSQL 數據庫
  
  確定tblCustomers 和 tblInvoices 表單已經被創建
  
  在數據庫窗口從Objects條中選擇Forms
  
  在數據庫窗口工具條中著重顯示Intermediate DDL 語句的窗體並單擊Design按鍵
  
  在Intermediate DDL 語句窗體中鼠標右鍵點擊Alter Table w/ Fast Foreign Key按鍵並從彈出菜單中選擇 Build Event…這操作將打開VBA開發環境以及包含著cmdFastKey_Click子過程的代碼窗口
  
  檢查被分配給 SQL變量的SQL 語句
  
  SQL = ALTER TABLE tblInvoices & _
  ADD CONSTRAINT FK_tblInvoices & _
  FOREIGN KEY NO INDEX (CustomerID) REFERENCES & _
  tblCustomers (CustomerID) & _
  ON UPDATE CASCADE & _
  ON DELETE CASCADE
  
  注意 DDL 語句改變了tblInvoices 表單並添加了牢固的外關鍵字限制同時它也通過使用級聯子句在tblInvoices 和 tblCustomers 之間建立了一個數據關聯
  
  關閉VBA 開發環境
  
  關閉Intermediate DDL 語句窗體
  
  從Tools菜單中選擇Relationships…菜單項以打開關聯窗口
  
  雙擊tblCustomers 和 tblInvoices 之間的關聯鏈接以打開Edit Relationships對話框
  
  注意級聯性更新和刪除選項沒有被設置
  
  關閉對話框
  
  當關聯鏈接仍然顯示時按Delete鍵刪除聯接
  
  關閉關聯窗口
  
  如果Intermediate DDL 語句在數據庫窗口仍然顯示點擊數據庫窗口工具條中的Open按鍵
  
  點擊Alter Table w/ Fast Foreign Key按鍵產生一個外關鍵字聯系
  
  關閉Intermediate DDL 語句窗體
  
  當新的關系鏈接被創建後使用前面提到的步驟打開Edit Relationships對話框
  
  注意級聯性更新和刪除選項已經被設置
  
  中級 DML 語句
  
  這個acIntSQL數據庫有許多關於數據處理語言 (DML) 語句的例子在這些范例裡你可以用它們來找到數據並且它們中的大多數是以查詢的形式實現的僅有的以在線SQL形式實現的DML 語句則是基於中級DML 語句窗體的窗體中的三個例子在LIKE子句中使用_% 通配符並使用SELECT INTO 語句在一個外部數據庫中創建一個表單
  
  在acIntSQL 數據庫中保存的兩個查詢是屬於DML 語句內容卻執行類似DDL的操作其中的SELECT INTO 語句從已有的數據庫中找到數據並用這些數據創建新的工作表通過這些范例的學習你將學會如何刪除目標工作表前提是這些工作表已經存在
  
  在中級DML語句的窗體中的Create Customers Database輸出指令和按鍵展示了一個對SELECT INTO 語句的有趣應用這是一個告訴你使用中級SQL 語句所能完成的各種事情的一個好的例子下面就是關於輸出命令和按鍵的子過程的代碼
  
  Private Sub cmdCreateDB_Click()
  Dim conCatalog As ADOXCatalog
  Dim conDatabase As ADODBConnection
  Dim SQL As String
  Dim sDBName As String
  On Error GoTo Error_Handler
  Initialize objects & variables
  Set conDatabase = ApplicationCurrentProjectConnection
  Set conCatalog = New ADOXCatalog
  sDBName = C:\Customersmdb
  Create the Customers database
  conCatalogCreate Provider=MicrosoftJetOLEDB; & _
  Data Source= & sDBName
  Run the DML statement to build the Customers table
  SQL = SELECT * INTO tblCustomers IN & sDBName & _
   & FROM tblCust
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22098.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.