在前面的课程中,我们已经学会了使用DataGrid控件从一个数据库中显示数据。但是,它不能为用户提供搜索和选择功能。为了能够搜寻某个信息,我们需要使用SQL查询。SQL是结构化查询语言。使用SQL关键词,我们可以搜寻和选择要显示的信息。最基本的SQL关键关键词是 SELECT,它是和关键词 FROM 配合从一个数据库中选择一个或多个表的信息。其语法是:
SELECT fieldname1,fieldname2,.....,fieldnameN FROM TableName
fieldname1, fieldname2,......fieldnameN 是从一个数据库表中的字段。其实你也可以用汉字来给字段和数据库的表取名,如下面的范例:
SELECT 姓名,城市,电话 FROM 学生名单
您可以选择任何数量的字段名来查询资料。如果你想选择所有的信息,你可以使用下面的语法:
SELECT * FROM TableName
为了示范如何应用SQL查询,让我们以下列字段名来建立一个具有以下字段ID, 书名, 作者, 年份, ISBN, 出版社, 价钱的Microsoft Access数据库。把table 保存为书库表,数据库则保存为books.mdb。
接下来,我们将启动Visual Basic,并插入一个ADO控件,一个DataGrid和三个命令按钮。将三个命令按钮命名为cmdAuthor,cmdTitle 及 cmdAll 并改变它们的标题为展示作者 ,展示书名 及 展示全部。您还可以更改表单的标题为书库。设计界面如图27.1所示:
现在,你需要连接数据库至ADO数据控件。在ADODC属性页对话框中,单击记录源(RecordSOurce)选项卡上,根据指令的类型(Command Type)选择 1-adCmdText 。然后在 Command 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
现在,运行程序。当你点击“展示作者”按钮时,只有作者的姓名将被显示出来,如下图所示:
当您单击“展示书名”的按钮时,只有书名显示出来,如下图所示:
最后,点击 “展示全部” 按钮时,所有的信息将显示出来。