vbasql文档格式.docx

上传人:b****6 文档编号:21517825 上传时间:2023-01-30 格式:DOCX 页数:67 大小:42.03KB
下载 相关 举报
vbasql文档格式.docx_第1页
第1页 / 共67页
vbasql文档格式.docx_第2页
第2页 / 共67页
vbasql文档格式.docx_第3页
第3页 / 共67页
vbasql文档格式.docx_第4页
第4页 / 共67页
vbasql文档格式.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

vbasql文档格式.docx

《vbasql文档格式.docx》由会员分享,可在线阅读,更多相关《vbasql文档格式.docx(67页珍藏版)》请在冰豆网上搜索。

vbasql文档格式.docx

Workbooks对象的Open方法:

作用是打开一个工作簿。

其语法为:

expression.Open(FileName,UpdateLinks,ReadOnly,Format,Password,WriteResPassword,

IgnoreReadOnlyRecommended,Origin,Delimiter,Editable,Notify,Converter,AddToMru,Local,

CorruptLoad)

其中:

expression必选。

该表达式返回一个Workbooks对象。

FileNameString类型,必需。

要打开的工作簿的文件名。

UpdateLinksVariant类型,可选。

指定文件中链接的更新方式。

如果省略本参数,则提示用户选择

链接的更新方式。

否则,该参数的取值应为下表中的某个值。

值含义

0不更新任何引用。

1更新外部引用,但不更新远程引用。

2更新远程引用,但不更新外部引用。

3同时更新远程引用和外部引用。

ReadOnlyVariant类型,可选。

如果该值为True,则以只读模式打开工作簿。

FormatVariant类型,可选。

如果MicrosoftExcel正在打开一个文本文件,则该参数用于指定分隔

字符,如下表所示。

如果省略本参数,则使用当前的分隔符。

值分隔符

1制表符

2逗号

3空格

4分号

5没有分隔符

6自定义字符(请参阅Delimiter参数)

PasswordVariant类型,可选。

该字符串指定打开一个受保护工作簿的密码。

如果省略该参数并且

指定工作簿已设置密码,则提示用户输入密码。

WriteResPasswordVariant类型,可选。

该字符串为一个写保护工作簿的写入权密码。

如果省略该

参数并且指定工作簿已设置密码,则提示用户输入密码。

IgnoreReadOnlyRecommendedVariant类型,可选。

如果该值为True,则设置Microsoft

Excel不显示建议只读消息(如果该工作簿以“建议只读”选项保存)。

OriginVariant类型,可选。

如果该文件为文本文件,则该参数用于指示该文件来源于何种操作

系统(以便正确映射代码页和回车/换行(CR/LF))。

可为以下XlPlatform常量之一:

xlMacintosh、

xlWindows或xlMSDOS。

如果省略本参数,则使用当前操作系统。

DelimiterVariant类型,可选。

如果该文件为文本文件并且Format参数为6,则此参数用于指定用

作分隔符的字符。

例如,可使用Chr(9)代表制表符,使用“,”代表逗号,使用“;

”代表分号或者使用自定

义字符。

如果该参数为字符串,则只使用该字符串的第一个字符。

EditableVariant类型,可选。

如果该文件为MicrosoftExcel4.0加载宏,则该参数的值为True

时可打开该加载宏以便在窗口中看到。

如果该参数的值为False或者省略该参数,则该加载宏以隐藏方式打

开,并且无法设为可见。

本选项不能应用于由MicrosoftExcel5.0或更高版本的MicrosoftExcel创建的加

载宏。

如果该文件是Excel模板,则参数的值为True时,会打开指定模板用于编辑。

参数为False时,可根据指定模板打开新的工作簿。

默认值为False。

NotifyVariant类型,可选。

当该文件不能以可读写模式打开时,如果该参数的值为True,则可将该

文件添加到文件通知列表。

MicrosoftExcel将以只读模式打开该文件并轮询文件通知列表,当文件通知列表

中的该文件可用时通知用户。

如果该参数的值为False或省略该参数,则不请求任何通知,并且不能打开任何不可用的文件。

ConverterVariant类型,可选。

打开文件时试用的第一个文件转换器的索引号。

首先使用的是指定

的文件转换器:

如果该转换器不能识别此文件,则试用所有的转换器。

转换器索引号由FileConverters属性

返回的转换器行号组成。

AddToMruVariant类型,可选。

如果该值为True,则将该工作簿添加到最近使用的文件列表中。

LocalVariant类型,可选。

如果该值为True,则以MicrosoftExcel(包括控制面版设置)的语言

保存文件。

如果该值为False(默认值),则以VisualBasicforApplications(VBA)的语言保存文件,其中VisualBasicforApplications(VBA)为典型安装的美国英语版本,除非VBA项目的Workbooks.Open来自旧的国际化的XL5/95VBA项目。

CorruptLoadVariant类型,可选。

可为以下常量之一:

xlNormalLoad、xlRepairFile和

xlExtractData。

如果未指定任何值,则默认值通常为普通状态,但如果Excel已尝试打开该文件,则可以是

安全加载或数据恢复状态。

首选值为普通状态。

如果Excel在打开文件时停止操作,则为安全加载状态。

果Excel再次停止操作,则为数据恢复状态。

示例

本示例打开Analysis.xls工作簿,然后运行Auto_Open宏。

Workbooks.Open"

ANALYSIS.XLS"

看起来Open方法的参数很多,其实经常用的不多,除了必须的FileName外,最常用的就是

Password,用来打开包含有打开权限密码的Excel文件,下面的例子就是打开密码为“123”的ANALYSIS.

XLS文件:

Password:

="

123"

Workbooks对象与Sheets和Worksheets对象的Add方法

上个VBA教程中介绍了Workbooks对象的Open方法,目的是在介绍如果用SQL连接Excel带密码中时,需要用到这个方法,而今天也是因为下一篇SQL语言教程的文章需要而介绍Add方法,以便大家对比一下。

下面的这些内容,同样也可以在Excel的VBA帮助中找到。

一、Workbooks对象的Add方法:

新建工作簿,新建的工作簿将成为活动工作簿。

语法是:

expression.Add(Template)

expression:

必需。

Template:

Variant类型,可选。

确定如何创建工作簿。

1、如果本参数为指定一现有MicrosoftExcel文件名的字符串,那么创建新工作簿将以该指定的文件作为模板。

2、如果本参数为常量,新工作簿将包含指定类型的单张工作表。

可为以下XlWBATemplate常量之一:

xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet或

xlWBATWorksheet。

3、如果省略本参数,MicrosoftExcel将创建包含一定数目的空白工作表的工作簿(该数目由SheetsInNewWorkbook属性设置)。

给出一个最常用也最常见的例子就是,本示例新建一个工作簿。

Workbooks.Add

二、Sheets和Worksheets对象的Add方法:

新建工作表、图表或宏表。

新建的工作表将成为活动工作表。

xpression.Add(Before,After,Count,Type)expression:

该表达式返回上面的对象之一。

Before:

指定工作表对象,新建的工作表将置于此工作表之前。

After:

指定工作表对象,新建的工作表将置于此工作表之后。

Count:

要新建的工作表的数目。

默认值为1。

Type:

指定工作表类型。

1、Type可为以下XlSheetType常量之一:

xlWorksheet、xlChart、xlExcel4MacroSheet或

xlExcel4IntlMacroSheet。

2、如果要基于现有模板插入工作表,则指定该模板的路径。

3、默认值为xlWorksheet。

下面的示例是活动工作簿的最后一张工作表之前插入一个新的工作表。

ActiveWorkbook.Sheets.AddBefore:

=Worksheets(Worksheets.Count)

Worksheet对象的Delete方法

上篇上个VBA教程中介绍了Workbooks对象与Sheets和Worksheets对象的Add方法,这一篇就要来说

说Delete,相对于Add方法,Delete方法是很简单了,也没有参数,其语法是:

expression.Delete(Shift)expression:

该表达式返回一个Worksheet对象。

唯一要说明的是,当要删除一个非空的工作簿或工作表时,此方法将显示提示用户确认删除的对话框。

对话框将按默认方式显示。

当调用Workbook或Worksheet对象时,Delete会返回一个Boolean值,如

果用户单击“取消”,则该值将返回“False”;

如果用户单击“删除”,则该值将返回“True”。

如果我们要让它不出现这个提示,可以把Application对象的DisplayAlerts属性,设定为False即可,下

面这段代码,是删除当前工作表,且不出现提示!

运行时请注意,当前工作表不要有需要的数据存在!

SubExcelba()

Application.DisplayAlerts=False

ActiveSheet.Delete

Application.DisplayAlerts=True

EndSub

关于Delete的说明就是这么简单,应该不会很难理解吧*^_^*

利用ADO的Connection对象来连接数据库

在SQL语言教程-序中我们说到这一篇要介绍利用ADO的Connection对象来连接数据库,目地就是让大家了解后,就可以便于以后的其它SQL语言教程里的代码,大家可以动手运行一下,看一下效果,之后的大部份例子中,这篇文章介绍的都是要用到的,就像我们要使用Excel文件时,要先用Workbooks对象的Open方法打开Excel文件一样。

下面进入正题。

首先要说的是ADO是什么?

ADO的全称是:

MicrosoftActiveXDataObjects,它使您的客户端应用程序能够通过OLEDB提供者访问和操作数据库服务器中的数据。

它的主要优点是易于使用、速度快、内存支出低和占用磁盘空间少。

ADO支持用于建立客户端/服务器和基于Web的应用程序的主要功

能。

第二个问题是如何使用ADO?

ADO有不少版本,不同的电脑里可能就有不同的版本,在VBA中使用

ADO的方法是,在VBE编辑器中工具菜单的引用项里,引用Microsoftactivexdateobjectsx.x,其中x.x为

版本号,可能会因为你安装的office的版本不同而不同,我用的例子,大多引用了2.5版。

认识了ADO,那开始说Connection对象,Connection对象表示数据源的唯一会话。

ADO提供这个对

象,来让我们连接数据库。

而Connection对象的ConnectionString属性,就是用来指示用于建立到数据源的连接的信息。

ConnectionString属性有五个参数:

参数|说明

Provider=:

指定用于连接的提供者的名称。

FileName=:

指定提供者特有的文件(例如,持久保留的数据源对象)的名称,这些文件中包含预置

的连接信息。

RemoteProvider=:

指定当打开客户端连接时使用的提供者的名称。

(仅限于远程数据服务。

RemoteServer=:

指定当打开客户端连接时使用的服务器的路径名称。

URL=:

指定连接字符串为标识资源(如文件或目录)的绝对URL。

设置ConnectionString属性后,就可以用Connection对象Open方法来接连数据库了。

能看到这,可能你已有点晕了,不过不要紧,下面的几个例子,就能让你更好地理解上面这样比较无味的

文字,首先是一段连接ACCESS数据库的程序。

Sub连接进销存表数据库()

'

*******************************************

作者:

bengdeng

功能:

连接同一目录下的进销存表数据库文件

注意:

要在工具/引用中引用microsoftactivexdateobjectsx.x

其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版

DimconnAsADODB.Connection

DimWNAsString

DimsSqlAsString

WN="

进销存表.mdb"

Setconn=NewADODB.Connection

conn.ConnectionString="

Provider=Microsoft.Jet.Oledb.4.0;

"

&

_

"

DataSource="

ThisWorkbook.Path&

\"

WN_

&

;

JetOLEDB:

DatabasePassword="

conn.Open

Ifconn.State=adStateOpenThen

MsgBox"

连接成功!

conn.Close

EndIf

Setconn=Nothing

上面程序的红色部分,是为了打开带密码的Access的数据库文件时,需要指定密码的代码,下面再来一

段程序,来连接一个Excel文件!

7

Sub连接进销存表()

连接同一目录下的进销存表文件

进销存表.xls"

conn.Open"

ExtendedProperties=Excel8.0;

WN

上面的与第一段程序对比,需要多设定一个参数——“ExtendedProperties”,这是指定Excel文件的

版本,现在已经有的版本为5.0、7.0、8.0等,分别对应的是95版,97版与2000~2003版的XLS文件格式,

我用的是2003版,所以设定为=Excel8.0。

最后需要说明的是,第二段程序是不能像第一段程序中,用JetOLEDB:

密码"

打开与连接带有密码的Excel文件的,如果需要处理这样的文件,就要用Workbooks对象的Open方法先打开

这个Excel文件后再处理。

下面的这个程序就是这样的例子:

Sub连接带密码进销存表()

连接同一目录下的打开文件密码为“123”的进销存表文件

Workbooks.OpenThisWorkbook.Path&

WN,Password:

_

Workbooks(WN).CloseFalse

这篇文章到这就完了,有点长,有三个程序,大家可以复制到VBA编辑器中,运行一下代码,好好的对比

与理解一下,相信,很快你就会踏这第一步了,而后面的世界还很多精彩,看到这的你,应该可以看出一点点

SQL与ADO与Excel的联系了,那就让我们一起继续向行吧!

8

CREATETABLE-创建数据表的语句

数据表是数据库的基本架构,就像Excel文件中的工作表一样,在Excel中我们可以用ADD方法来创建新

的工作表,而SQL语言里,CREATETABLE语句就是用来创建数据表的。

在说明CREATETABLE语句的语法之前,我们再来了解一些相关的知识。

Excel工作表中对应有列与

行,而在数据库中,对应称为Column与Row,对于这两个单词,应该用过VBA的人都不会陌生,这也是

Excel中VBA里列与行的写法。

不同的是下面,在数据库中多少列是在创建表时就有设定的,虽然以后还有可

能增加,而且在设定时还要规定整列的数据类型,同时也意味者整列的数据类型都是一样的;

这个在Excel中

是没有这样的规则,而且Excel的最大行与列是由Excel本身决定的,这也是数据库与电子表格对数据约束最

大的不同。

而数据库具体有哪些数据类型呢?

以ACCESS为例,有存贮日期类型的DATETIME;

有存贮数值类型的

FLOAT,SMALLINT,INTEGER等,有字符串型的CHAR等等。

不同的数据库可能支持不同的数据类型,

因此在使用时应该参考一下数据库在这方面的说明。

了解了上面的信息,下面开始说下CREATETABLE语句的语法:

CREATETABLE表格名(列名1列名1的数据类型,列名2列名2的数据类型,...)

注意在列名与数据类型中间有一个空格,在VBA中,我们可以利用ADO的Execute方法,来运行SQL

语句,下面我们就用CREATETABLE来创建一个进销存表数据库的三个数据表——明细表,进仓表与出仓

表;

其中明细表有5列,分别为物品名称(字符串型),结余日期(日期型),结余数量(双精度型),进仓

数量(双精度型),出仓数量(双精度型);

进仓表有3列,分别为进仓日期(日期型),物品名称(字符串

型),进仓数量(双精度型);

出仓表有3列,分别为出仓日期(日期型),物品名称(字符串型),出仓数

量(双精度型)。

代码如下:

Sub创建进销存表数据库()

****

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1