图27.1
在前面的課程中,我們已經學會了使用DataGrid控件從一個數據庫中來顯示數據。但是,它沒有為用戶提供搜索和選擇的功能。為了能搜尋某個信息,我們需要使用SQL查詢。SQL是結構化查詢語言。我們可以使用根據一定標准的SQL關鍵字來選擇要顯示的具體信息。最基本的SQL關鍵字是SELECT,它是和關鍵字FROM 配合從一個數據庫中選擇一個或多個表的信息。其語法是:
SELECT fieldname1,fieldname2,.....,fieldnameN FROM TableName
fieldname1, fieldname2,......fieldnameN 是從一個數據庫表中的字段。其實你也可以用漢字來給字段和數據庫的表取名,如下面的範例:
SELECT 姓名,城市,電話 FROM 學生名單
您可以選擇任何數量的字段名來查詢資料。如果你想選擇所有的信息,你可以使用下面的語法:
SELECT * FROM TableName
為了示範如何應用SQL查詢,讓我們以下列字段名來建立一個新的Microsoft Access數據庫及把table 保存為書庫表,數據庫則存為books.mdb。
ID, 書名, 作者, 年份, ISBN, 出版社, 價錢
接下來,我們將啟動Visual Basic,並插入一個ADO控件,一個DataGrid和三個命令按鈕。將三個命令按鈕命名為cmdAuthor,cmdTitle 及 cmdAll 並改變它們的標題為展示作者 ,展示書名 及 展示全部。您還可以更改表單的標題為書庫。設計界面如下圖所示:
图27.1
現在,你需要連接數據庫至ADO數據控件。不過,你需要做一個改變。在ADODC屬性頁對話框中,單擊”記錄“選項卡上,選擇?1-adCmdText?。根據指令的類型和指令Text(SQL)鍵入SELECT * FROM book。
圖27.2
接下來,請單擊展示作者命令按鈕 cmdAuthor 然后鍵入下面的語句:
Private Sub cmdAuthor_Click()
Adodc1.RecordSource = "SELECT 作者 FROM 书库表 ORDER BY 作者 ASC"
Adodc1.Refresh
Adodc1.Caption = Adodc1.RecordSource
End Sub
ORDER BY 作者 ASC 是以作者名字顺序排列。
再下來單擊展示書名命令按鈕 cmdTitle 然后鍵入下面的語句:
Private Sub cmdTitle_Click()
Adodc1.RecordSource = "SELECT 數名 FROM 書庫表 ORDER BY 書名 DESC"
Adodc1.Refresh
Adodc1.Caption = Adodc1.RecordSource
End Sub
ORDER BY 書名 DESC 是以書名逆序排列。
最后單擊展示全部命令按鈕 cmdAll, 鍵入下面的語句:
Private Sub cmdAll_Click()
Adodc1.RecordSource = "SELECT * FROM 書庫表"
Adodc1.Refresh
Adodc1.Caption = Adodc1.RecordSource
End Sub
現在,運行程序。當你點擊“展示作者”按鈕時,只有作者的姓名將被顯示出來,如下圖所示:
圖27.3
當您單擊“展示書名”的按鈕時,只有書名顯示出來,如下圖所示:
圖27.4
最後,点击 “展示全部” 按钮时,所有的信息将显示出来。
圖27.5