EXCEL使用VBA宏生成SQL语句

合集下载

EXCEL(VBA)连接MSSQL查询数据

EXCEL(VBA)连接MSSQL查询数据

EXCEL(VBA)连接MSSQL查询数据

两种方法:

1、通过建立ODBC,例如下面的名为“SQL_SERVER”,再调用该ODBC进行连接

Dim qt As QueryTable

' 定义一个查询表

sqlstring = "select * from aad"

'定义一句SQL的查询语言内容到sqlstring里去, 以备调用.

connstring = "ODBC;DSN=SQL_Server;UID=sa;PWD=;Database=db_demo"

'定义连接的方式到connstring里去, 以备调用. 说的是, 采用ODBC方式连接, ODBC的名字是SQL_Server, 用户名是sa, 密码是空, 连接AIS20060414142400库.

With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"),sql:=sqlstring)

'选择当前工作表中的B1单元格做为起始的地方, 开始连接数据库, 按条件查询, 并返回数据.

.Refresh

'刷新

End With

'数据查询结束, 则循环结束

2、直接与SQL服务器建立连接(有三种表示方式)

'不用DIM定义

Set Conn = CreateObject("adodb.connection")

Conn.Open "Driver=SQL Server;SERVER=erptest;Database=db_demo;uid=sa;pwd="

在Excel的VBA中使用SQL语句

在Excel的VBA中使用SQL语句
要求一,将 EXCEL 文件 SG Master List SO Outanding 090520_ZY.xls 中 Master 页内容 中,ItemCode 字段左边Biblioteka Baidu位字符值,和 U_Cat1 字符值加上 U_Cat2 加上”-”号, 再加上 U_Cat3 右边两位数相比较,将不相同所有行记录,复制到 sheet2 页中去.
Sub 筛选() Dim cn As New ADODB.Connection Dim sql As String 'cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName cn.Open "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.Path & "\SG Master List SO Outanding 090520_ZY.xls" sql = "select * from [Master$] where left(ItemCode,6) <> U_Cat1 & U_Cat2 & '-' & right(U_Cat3,2) Sheets("Sheet2").[A4].CopyFromRecordset cn.Execute(sql) cn.Close Set cn = Nothing End Sub

ExcelVBAADOSQL入门教程021:ADO常用连接字符串

ExcelVBAADOSQL入门教程021:ADO常用连接字符串

ExcelVBAADOSQL入门教程021:ADO常用连接字符串

大家好,好久不见,我们今天开始讲述ADO。

在很久以前的第2章,我们说明了ADO的概念以及为什么学习ADO;同时也介绍了如何在VBA中引用ADO类库、创建同Excel文件的连接,并分享了一个使用ADO执行SQL语言的小套路等;

打个响指,对面的女孩看过来……就像我们所熟悉的Workbook 对象一样,大对象ADO内部也有多个小对象,不过我们经常用到的只有两个;一个是Connection,另一个是Recordset。Connection,顾名思义,是到数据库的连接,管理应用程序和数据库之间的通信;Recordset,又称记录集,是用来获得数据,存放和处理SQL语句的查询结果……另外,我们可能会在系列教程的末尾稍微提下ADO的Command对象,它的主要作用是用来处理带参数值的或重复执行的查询。

……

先来看下Connection对象。它的语法如下:

connection.Open ConnectionString, UserID,Password, Options

语法各参数的含义我们第2章时讲过了,这里不再重述。嗯,我是真懒,实在没办法把第2章的内容复制粘贴过来,所以建议你先看完第2章的前3节内容再继续向下阅读。

踹一脚,对面的男孩看过来……第2章时,我们说过,虽然Connection对象对于不同的数据库或文件会有不同的连接字符串,但常用的数据库或文件的连接字符串均是固定的。

下面是常用数据库或文件的连接字符串。

1,Access数据库

Excel宏编程进阶通过VBA实现数据导入与导出

Excel宏编程进阶通过VBA实现数据导入与导出

Excel宏编程进阶通过VBA实现数据导入与

导出

Excel作为常用的电子表格软件,为我们处理数据提供了极大的便利。而通过VBA编写宏,更是可以进一步加强Excel的功能,使其能够实现自动化的数据导入和导出。本文将介绍如何利用VBA编程,实现Excel宏在数据导入和导出方面的进阶应用。

(正文部分)

数据导入是Excel中常见的操作,而通过VBA编写宏可以极大地简化这一过程。一般情况下,我们需要从外部数据源(如数据库、文本文件等)将数据导入到Excel中。在VBA中,可以使用ADO (ActiveX Data Objects)对象来连接外部数据源,并通过SQL语句实现数据的选择和导入。

首先,我们需要在VBA编辑器中将ADO库添加到引用中。在“工具”菜单下选择“引用”,勾选“Microsoft ActiveX Data Objects Library”,点击确定。

接下来,在VBA编辑器中的代码窗口中编写宏的代码。首先,我们需要创建一个ADODB.Connection对象,用于连接到外部数据源。可以通过指定连接字符串来连接到相应的数据源。

例如,如果要连接到一个名为“DataWarehouse”的Access数据库,可以使用以下代码:

```vba

Dim conn As ADODB.Connection

Set conn = New ADODB.Connection

conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DataWarehouse.accdb;"

EXCEL利用VBA进行数据库操作

EXCEL利用VBA进行数据库操作

EXCEL利用VBA进行数据库操作

一、简介

数据库是指存储数据、信息的系统。Microsoft Excel是一款功能强

大的表格计算软件,同时也可以作为一种数据库系统,可以以非常有效的

方式存储、组织及分析数据。VBA(Visual Basic for Applications)是Microsoft Excel中的脚本语言,它是一种可以实现用户宏的功能性平台,用户可以使用它来编写宏程序,比如修改一些单元格的数据,读取一些文件,发送邮件等。VBA可以用来创建、管理并进行数据库操作,而使用

VBA来操作Excel来实现数据库操作,可以让用户更加方便快捷地管理数据。

2.查询数据:使用VBA可以查询数据,获取特定要求的数据。用户可

以使用各种SQL语句来进行查询,比如使用WHERE关键字进行筛选,使用ORDERBY关键字对查询结果排序等。

3.更新数据:用户可以使用VBA来更新一些数据,修改字段属性或进

行其他更新操作。

4.插入数据:使用VBA可以从外部文件或其他数据源插入数据,也可

以逐条新增数据。

5.删除数据:使用VBA可以通过特定条件删除一些记录。

三、使用技巧

如何利用VBA实现Excel与SQL Server数据库的数据交互

如何利用VBA实现Excel与SQL Server数据库的数据交互

如何利用VBA实现Excel与SQL

Server数据库的数据交互

VBA (Visual Basic for Applications) 是一种用于自动化任务和处

理数据的编程语言,广泛应用于Microsoft Office套件中,包括Excel。通过VBA,我们可以将Excel与SQL Server数据库进行数

据交互,实现数据的导入、导出、更新和查询等操作。

这篇文章将介绍如何利用VBA实现Excel与SQL Server数据

库的数据交互。我们将分为以下几个部分来讨论和实现这个目标:

1. 连接到SQL Server数据库:首先,我们需要建立与SQL Server数据库的连接来进行数据交互。在Excel中,可以使用ADODB(ActiveX Data Objects Database)对象来实现这一点。我

们需要使用正确的连接字符串来连接到SQL Server,并选择适当

的数据库。

2. 查询数据:一旦连接成功,我们可以使用SQL语句来查询数据库中的数据。在VBA中,可以使用ADODB.Recordset对象来

执行查询,并将结果保存到Excel中的工作表中。我们需要编写合适的SQL查询语句来选取所需的数据。

3. 导入数据:如果我们需要将Excel中的数据导入到SQL Server数据库中,可以使用ADO对象的Execute方法来执行

INSERT语句。我们可以使用Excel的数据范围或遍历工作表中的

单元格,然后将数据插入到数据库中。

4. 更新数据:通过使用UPDATE语句,我们可以在数据库中

更新现有数据。在VBA中,可以使用ADO对象的Execute方法

分享ExcelVBA中SQL查询模块代码

分享ExcelVBA中SQL查询模块代码

分享ExcelVBA中SQL查询模块代码

分享Excel VBA中SQL查询模块代码

更多

最近一直在写VBA,因为涉及到的统计比较多,且资料量也比较大,所以比较喜欢用ADO+SQL的方法,但这样就在程序中多次出现定义对象--连接数据库--执行查询--输出结果这个过程,所以干脆整理出来,做一个模块,这样以后随时可以调用,且应用起来比较方便,不会被一大堆的代码搞晕。

模块名称为queryinfo,参数ssql为SQL语句,biaoming为结果输出的表名称,weizhi为输出表位置的左上角单元格。

引用示例:

Call queryinfo("SELECT field1,field2 FROM [sheet1$]","sheet2","A2")

表示查询表1中的第一、第二字段的数据输出到表2,在表2中从A2单元格开始写入数据。

模块代码:

Sub queryinfo(ssql As String, biaoming As String, weizhi As String)

Dim conn As ADODB.Connection

Set conn = New ADODB.Connection

conn.Open "Provider=Microsoft.Jet.Oledb.4.0;" & _

"Extended Properties=Excel 8.0;" & _

"Data Source=" & ThisWorkbook.Path & "\" &

If conn.State = adStateOpen Then

Sheets(biaoming).Range(weizhi).CopyFromRecordset conn.Execute(ssql)

使用VBA连接SQL数据库获取数据

使用VBA连接SQL数据库获取数据

使用VBA连接SQL数据库获取数据

VBA是Visual Basic for Applications的缩写,它是Microsoft Office套件内的一种编程语言。通过VBA,我们可以在Microsoft Excel、Access等软件中编写代码来进行数据操作和处理。

在VBA中,我们可以使用ADO(ActiveX Data Objects)来连接SQL

数据库并获取数据。ADO是Microsoft的一组COM组件,提供了访问多种

数据库的接口和功能。下面是使用VBA连接SQL数据库获取数据的步骤:

1.引入ADO库:

2.创建连接对象:

在代码中,首先要创建一个ADODB.Connection对象,用于表示与

SQL数据库的连接。可以使用如下代码创建连接对象:

```vba

Dim conn As New ADODB.Connection

```

3.打开连接:

使用连接对象的Open方法打开与数据库的连接。需要提供连接字符串,指定数据库的位置、用户名、密码等信息。具体连接字符串的格式取

决于使用的数据库类型和驱动程序。以下是一个连接MySQL数据库的示例

代码:

```vba

Dim conn As New ADODB.Connection

Dim connStr As String

conn.Open connStr

```

4.创建命令对象:

```vba

cmd.ActiveConnection = conn

```

5.执行SQL查询:

指定要执行的SQL查询,并使用命令对象的Execute方法执行该查询。以下是一个查询表数据的示例代码:

excel vba sql语句示例

excel vba sql语句示例

excel vba sql语句示例

Excel VBA中SQL语句示例-以中括号为主题

在Excel VBA中,SQL(Structured Query Language)是一种用于管理关系数据库的语言。它允许用户从数据库中检索数据,更新和删除数据,并与数据库进行交互。中括号[]在SQL语句中用于标识数据表或字段名称。本文将介绍几个常用的Excel VBA中使用SQL语句并涉及中括号的示例。

1.查询数据表中所有字段

使用SELECT语句可以从数据表中选择一条或多条记录。要选择所有字段,可以使用“*”或字段列表。使用“*”选取所有字段非常方便,但不建议在大型数据表中使用。以下是一个示例,它使用“*”选取数据表中的所有字段。

Sub SelectAllFields()

'Define variables

Dim cn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim strQuery As String

'Open connection to the database

Set cn = New ADODB.Connection

cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\User\Documents\Database.accdb;Persist Security Info=False;"

cn.Open

'Create SQL query to select all fields from the data table

ExcelVBA编程与外部数据连接如何利用VBA与外部数据源进行数据交互

ExcelVBA编程与外部数据连接如何利用VBA与外部数据源进行数据交互

ExcelVBA编程与外部数据连接如何利用VBA与外部数据源进行数据交互Excel VBA编程与外部数据连接如何利用VBA与外部数据源进行数据交互

Excel是一款功能强大且广泛应用的电子表格软件,它提供了许多工具和功能,使用户能够对数据进行有效处理和分析。而Excel VBA (Visual Basic for Applications)编程则是利用Excel内置的VBA语言进行自动化处理和定制功能的方法。除了利用Excel本身的数据,VBA 编程还可以与外部数据源进行连接,实现更丰富的数据交互。本文将介绍如何利用VBA与外部数据源进行数据交互的方法。

一、连接外部数据源

在Excel VBA中,可以通过ADO(ActiveX Data Objects)对象库连接外部数据源。ADO是一种Microsoft开发的数据访问技术,可以用于连接各种类型的数据库,并通过SQL语句来操作数据。连接外部数据源的过程包括以下几个步骤:

1. 引用ADO对象库:首先需要在VBA中引用ADO对象库,以便使用ADO提供的功能和对象。在VBA编辑器中点击“工具”-“引用”,勾选“Microsoft ActiveX Data Objects x.x Library”(x.x为版本号)。

2. 创建连接对象:使用ADO对象库提供的Connection对象,可以创建用于与外部数据源建立连接的连接对象。可以指定连接的类型

(如Access数据库、SQL Server等)和连接字符串(包含连接的详细

信息)。

3. 打开连接:通过连接对象的Open方法,可以打开与外部数据源

VBA调用SQL查询的方法与示例

VBA调用SQL查询的方法与示例

VBA调用SQL查询的方法与示例

VBA(Visual Basic for Applications)是一种广泛应用于Microsoft Office软件中的宏语言,它可以使用户通过编写代码来自动化执行各种任务。在Excel、Access等应用程序中,VBA可以与SQL(Structured Query Language)数据库查询语言相结合,实现对数据库的操作和管理。本文将介绍VBA调用SQL查询的方法与示例,并提供相关代码供读者参考。

1. 连接到数据库

在VBA中调用SQL查询之前,我们需要先连接到数据库。VBA中连接数据库的方法有许多种,这里我们以连接到Microsoft Access数据库为例进行说明。

首先,我们需要在VBA代码中添加对Microsoft ActiveX Data Objects(ADO)库的引用。在VBA编辑器中,选择“工具”>“引用”,然后选中“Microsoft ActiveX Data Objects x.x Library”。

接下来,我们可以使用ADO连接字符串来连接到数据库。例如,对于Microsoft Access数据库,连接字符串的格式为:

```

Provider=Microsoft.ACE.OLEDB.12.0;Data

Source=C:\path\to\database.accdb;

```

我们可以将连接字符串保存在一个变量中,并使用

`ADODB.Connection`对象来进行连接。

示例代码:

```VBA

Dim conn As Object

VBA与SQL语句的结合与应用实例

VBA与SQL语句的结合与应用实例

VBA与SQL语句的结合与应用实例

在现代信息化时代,数据处理已经成为各个行业中不可或缺的一环。在处理大

量数据时,使用Excel和SQL数据库是非常常见的选择。而结合VBA(Visual Basic for Applications)和SQL语句,可以将两者的优势发挥到极致,提高数据处

理的效率和准确性。本文将通过一些实例来展示VBA与SQL语句的结合与应用。

案例一:数据导入与清洗

假设我们有一个存储了客户订单的Excel表格,我们需要将其中的数据导入到SQL数据库中进行进一步处理。这时,我们可以使用VBA编写一个宏来实现自动

将Excel中的数据导入到数据库表中。

首先,我们需要在Excel中添加一个按钮,通过宏来触发数据导入的操作。然后,我们可以使用VBA代码来连接到数据库,并执行相应的SQL语句将数据导入。示例代码如下:

```vba

Sub ImportDataToSQL()

Dim conn As Object

Dim rs As Object

Dim strSQL As String

Dim rng As Range

Dim cell As Range

Set conn = CreateObject("ADODB.Connection")

conn.ConnectionString = "Provider=<provider>; Data Source=<data_source>; Initial Catalog=<catalog>; User ID=<user_id>; Password=<password>"

VBA实现Excel的数据库查询与连接

VBA实现Excel的数据库查询与连接

VBA实现Excel的数据库查询与连接

在日常工作中,我们经常会遇到需要查询和连接数据库的情况。在Excel中,通过使用VBA编程语言,我们可以轻松地实现与数据库的交互,包括数据库的查询与连接。本文将介绍如何使用VBA实现Excel的数据库查询与连接。

首先,我们需要在Excel中启用Microsoft ActiveX Data Objects库(简称ADO 库)。ADO库是一个可用于连接和操作各种类型的数据库的COM组件。我们可以通过以下步骤启用ADO库:

1. 打开Excel,并点击工具栏上的“开发工具”选项卡。

2. 在“控件”组中,点击“工具”按钮,然后选择“引用”。

3. 在弹出的对话框中,找到并勾选“Microsoft ActiveX Data Objects x.x库”(其中x.x表示版本号),然后点击“确定”。

现在,我们已经成功启用了ADO库,接下来就是编写VBA代码来实现数据库查询与连接。

首先,我们需要创建一个ADODB.Connection对象来建立与数据库的连接。下面是一个示例代码,演示了如何连接到一个名为"MyDatabase"的数据库:

```vba

Dim conn As New ADODB.Connection

conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data

Source=C:\Path\To\MyDatabase.accdb"

conn.Open

```

在上面的代码中,我们首先创建了一个ADODB.Connection对象,并将连接串指定为一个Access数据库文件(.accdb)。请注意,这个示例使用的是Microsoft ACE OLEDB 12.0驱动程序,如果你使用的是其他类型的数据库,你需要相应地更改连接字符串。

Excel中使用SQL进行跨工作簿的数据合并

Excel中使用SQL进行跨工作簿的数据合并

Excel中使用SQL进行跨工作簿的数据合

概念

在Excel中,使用结构化查询语言(SQL)进行跨工作簿的数据合并是一种高效的数据处理方法。通过SQL语句,我们可以从不同的工作簿中提取和整合数据,以实现数据分析和报告的目的。

功能

使用SQL进行跨工作簿的数据合并主要有以下功能:

连接不同工作簿中的表:通过连接操作,将不同工作簿中的数据表合并为一个结果集。

筛选和排序数据:根据特定的筛选条件,从结果集中选择需要的数据,并进行排序。

聚合数据:将多个行的数据组合成单个行,例如使用SUM、AVG、MAX等函数对数值进行聚合。

数据转换:通过使用SQL的转换函数,对数据进行处理和转换。

语法

在Excel中,可以使用Visual Basic for Applications (VBA)宏来运行SQL语句。以下是在Excel中执行SQL语句的基本步骤:

1.打开Excel文件,并打开需要执行SQL语句的工作表。

2.在“开发者”选项卡中,点击“Visual Basic”按钮,打开VBA编辑器。

3.在VBA编辑器中,点击“插入”->“模块”,创建一个新的模块。

4.在模块中输入SQL语句,并使用适当的语法进行数据操作。

5.运行SQL语句,通过调用DAO对象模型来执行SQL查询。

案例

案例1:对于两个工作簿中相同结构表格的简单数据合并(不去除重复)

如果两个工作簿中的数据结构完全一致,并且你希望进行简单的合并而不是去除

重复项,你可以使用UNION ALL操作符来合并数据。

以下是一个示例的VBA代码,用于合并两个工作簿中的数据:

Excel使用VBA宏生成SQL语句

Excel使用VBA宏生成SQL语句

有时候需要将Excel文件中的数据导入到数据库中,常用的做法是使用程序读取Excel,然后存入数据库;这里换一个方法,用Excel生成SQL语句,然后用这些SQL语句来更新数据库。

本文主要说明Excel如何使用VB宏构造需要的SQL语句,并生成文件。

2、如何添加按钮:

依次打开:视图–工具栏–控件工具箱,选择“命令按钮”,自己画一个就行了;

依次打开:右键–属性,可以修改名称、样式等。

具体操作可以上网找找。

3、如何使用VB宏:

依次打开:工具–宏–安全性,看看你的Excel是否允许使用“宏”。

然后打开:工具–宏–Visual Basic 编辑器,双击左侧的“Sheet1”,然后在右侧的代码区域粘贴如下代码:

'最大行数

Const MAX_NUM_ROW = 5000

'导出文件路径所在单元格

Const PATH_OUTPUT_ROW = 3

Const PATH_OUTPUT_COL = 3

'定义列常量

Const NAME_COL = 1

Const GENDER_COL = 2

Const PHONE_COL = 3

Const EMAIL_COL = 4

'读取数据开始行数

Const START_ROW = 5

'定义数据实体类

Private Type Tmplt

NAME As String

GENDER As String

PHONE As String

EMAIL As String

End Type

'行数变量

Dim noOfTmplts As Integer

'数据实体类数组

Dim TmpltArray(MAX_NUM_ROW) As Tmplt

ExcelVBAADOSQL入门教程001:认识SQLInExcel

ExcelVBAADOSQL入门教程001:认识SQLInExcel

3.

后⾯这句话似乎很难理解,举例来说,倘若我们需要获取上图所⽰表格(

arr = Sheet1.[a1].CurrentRegion

ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))

For i = 1 To UBound(arr)

If arr(i, 2) >= 80 Then

k = k 1

brr(k, 1) = arr(i, 1)

brr(k, 2) = arr(i, 2)

End If

Next

[d:f].ClearContents

[d1].Resize(k, 2) = brr

End Sub

你需要通过VBA编程告诉计算机每⼀步怎么⾛,数据从哪⾥来,从哪⾥开始遍历,⾏列是多少,符合条件的数据装⼊哪⾥,怎么装等等……

⽽如果⽤声明式SQL语⾔呢?只要告诉计算机我要什么就可以了。

SELECT 姓名,成绩 FROM [Sheet1$] WHERE 成绩>=80

我要Sheet1表(FROM [Sheet1$])……成绩⼤于等于80(WHERE 成绩>=80)……姓名和成绩的数据(SELECT 姓名,成绩)。

只要结果,不问过程。

就酱紫的声明式霸道总裁范。

4.

为什么要学习SQL In Excel(Excel⽀持的SQL语⾔)呢?

换⾔之,相⽐于Excel其它功能,例如函数、VBA、POWER PIVOT等,SQL有何优势?

⾸先,必须严肃脸说明的是,对于普通Excel使⽤者⽽⾔,VBA、SQL以及以后提及的ADO并不是⾮学不可的,⾮学不可的是基础操作、函数、透视表、图表……

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有时候需要将Excel文件中的数据导入到数据库中,常用的做法是使用程序读取Excel,然后存入数据库;这里换一个方法,用Excel生成SQL语句,然后用这些SQL语句来更新数据库。

本文主要说明Excel如何使用VB宏构造需要的SQL语句,并生成文件。

2、如何添加按钮:

依次打开:视图–工具栏–控件工具箱,选择“命令按钮”,自己画一个就行了;

依次打开:右键–属性,可以修改名称、样式等。

具体操作可以上网找找。

3、如何使用VB宏:

依次打开:工具–宏–安全性,看看你的Excel是否允许使用“宏”。

然后打开:工具–宏–Visual Basic编辑器,双击左侧的“Sheet1”,然后在右侧的代码区域粘贴如下代码:

'最大行数

Const MAX_NUM_ROW=5000

'导出文件路径所在单元格

Const PATH_OUTPUT_ROW=3

Const PATH_OUTPUT_COL=3

'定义列常量

Const NAME_COL=1

Const GENDER_COL=2

Const PHONE_COL=3

Const EMAIL_COL=4

'读取数据开始行数

Const START_ROW=5

'定义数据实体类

Private Type Tmplt

NAME As String

GENDER As String

PHONE As String

EMAIL As String

End Type

'行数变量

Dim noOfTmplts As Integer

'数据实体类数组

Dim TmpltArray(MAX_NUM_ROW)As Tmplt

'点击按钮触发事件

Private Sub CommandButton1_Click()

generateSQL

End Sub

'生成SQL

Private Sub generateSQL()

makedir

initData

writeToFile

End Sub

'构建文件输出路径

Private Sub makedir()

On Error Resume Next

MkDir Sheet1.Cells(PATH_OUTPUT_ROW,PATH_OUTPUT_COL)

End Sub

'读取Excel数据,填充实体类数组

Private Sub initData()

Erase TmpltArray

noOfTmplts=0

Dim j As Integer

'循环读取Excel数据行

For j=START_ROW To MAX_NUM_ROW

TmpltArray(noOfTmplts).NAME=Sheet1.Cells(j,NAME_COL) TmpltArray(noOfTmplts).GENDER=Sheet1.Cells(j,GENDER_COL) TmpltArray(noOfTmplts).PHONE=Sheet1.Cells(j,PHONE_COL) TmpltArray(noOfTmplts).EMAIL=Sheet1.Cells(j,EMAIL_COL) noOfTmplts=noOfTmplts+1

Next

End Sub

'读取实体类数组,生成SQL并写入文件

Private Sub writeToFile()

Dim lvOutputPath As String

'输出文件路径

lvOutputPath=Sheet1.Cells(PATH_OUTPUT_ROW,PATH_OUTPUT_COL) If lvOutputPath=""Then

MsgBox"没有找到输出文件路径!"

Exit Sub

End If

fileNum=FreeFile

'打开输出文件

Open lvOutputPath For Output As fileNum

Dim lvUserSql As String

Dim nameStr As String

Dim genderStr As String

Dim phoneStr As String

Dim emailStr As String

'循环生成SQL

For j=0To noOfTmplts-1

nameStr=TmpltArray(j).NAME

genderStr=TmpltArray(j).GENDER

phoneStr=TmpltArray(j).PHONE

emailStr=TmpltArray(j).EMAIL

If nameStr<>""Then

lvUserSql="Insert into Students(name,gender,phone,email)values('"&nameStr&"','"& genderStr&"','"&phoneStr&"','"&emailStr&"');"

Print#fileNum,lvUserSql

End If

Next

Close fileNum

MsgBox"文件生成完成!"

Exit Sub

Err_Open_File:

Close lvFileNum

If Err.Number=76Then

'路径未找到

MsgBox Err.Description

Exit Sub

Else

MsgBox Err.Description

Exit Sub

End If

End Sub

OK,这样就可以了!点击你的按钮,看看生成文件了吗?

如果按钮还是编辑状态,关了再打开就行了。

相关文档
最新文档