0

0

MSJetSQLforAccess2000中级篇(IV)

php中文网

php中文网

发布时间:2016-06-07 15:12:02

|

1117人浏览过

|

来源于php中文网

原创

现在我们已经讨论了 中级 SQL的语法,那么让我们看看在一个Access应用程序中我们可以使用它的一些途径。 数据库范例 作为这篇文章的附带,这里有一个叫acIntSQL.mdb的数据库范例。 在acIntSQL中的任一处都是基于本文所提到的所有主题,并且它通过查询和范例的

现在我们已经讨论了中级SQL的语法,那么让我们看看在一个Access应用程序中我们可以使用它的一些途径。

数据库范例

作为这篇文章的附带,这里有一个叫acIntSQL.mdb的数据库范例。

在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 2000基础篇"一文中所述, Access把数据库中所有面向数据的任务转化为SQL 语句。要演示这一点,让我们使用Access Query Designer来建立一个查询。

打开acIntSQL数据库。

(单击此处拷贝acIntSQL.mdb 数据库例子。)

确保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 ADODB.Connection

Dim SQL As String

On Error GoTo Error_Handler

Set conDatabase = Application.CurrentProject.Connection

'注意: Fields 1 through 4 can be created through both

'SQL View and the Jet OLEDB Provider.

'Fields 5 and 6 can only be created through the

'Jet OLE DB provider.

SQL = "CREATE TABLE tblCodeBinaryDataTypes (" & _

"Field1_BINARY BINARY, " & _

"Field2_BINARY250 BINARY(250), " & _

"Field3_VARBINARY VARBINARY, " & _

"Field4_VARBINARY250 VARBINARY(250), " & _

"Field5_BVARYING BINARY VARYING, " & _

"Field6_BVARYING250 BINARY VARYING(250))"

conDatabase.Execute SQL

MsgBox "The BINARY datatypes table has been created!"

conDatabase.Close

Set conDatabase = Nothing

Exit Sub

Error_Handler:

MsgBox Err.Description, 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 ADOX.Catalog

Dim conDatabase As ADODB.Connection

Dim SQL As String

Dim sDBName As String

On Error GoTo Error_Handler

'Initialize objects & variables.

Set conDatabase = Application.CurrentProject.Connection

Set conCatalog = New ADOX.Catalog

sDBName = "C:Customers.mdb"

'Create the Customers database.

conCatalog.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & sDBName

'Run the DML statement to build the Customers table.

SQL = "SELECT * INTO tblCustomers IN '" & sDBName & _

"'" & "FROM tblCust

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

2

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

2

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

0

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

0

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.29

clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

25

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

16

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

622

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3万人学习

MongoDB 教程
MongoDB 教程

共17课时 | 2.4万人学习

AngularJS教程
AngularJS教程

共24课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号