用VBA将EXCEL内容一次性导入SQL

用VBA将EXCEL内容一次性导入SQL,第1张

用VBA将EXCEL内容一次性导入SQL

'工具->引用->Microsoft ActiveX Date Object 2.0

Public Sub SaveData()

Dim Cnn As ADODB.Connection

Dim SQL As String

Set Cnn = New ADODB.Connection

'建立于数据库的链接

'这里根据你的实际值修改ConnectionString = "Driver=SQL ServerServer=<a href="https://www.baidu.com/s?wd=%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8D%E7%A7%B0&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9uHcvryRLuW99uHb1uHK90ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHnvP1RdPjTsn1R3P1Dkn1DLrf" target="_blank" class="baidu-highlight">服务器名称</a>Database=数据库Uid=账号Pwd=密码"

With Cnn

.Provider = "SQLOLEDB"

.ConnectionString = "Driver=SQL ServerServer=mxb\sqlexpressDatabase=testUid=saPwd=xiaoma"

.Open

End With

'保存数据

r = Range("A65534").End(xlUp).Row

For i = 1 To r

'拼sql

SQL = "insert into T values('" &Cells(i, 1) &"','" &Cells(i, 2) &"'," &Cells(i, 3) &")"

Cnn.Execute SQL

Next

Cnn.Close

Set Cnn = Nothing

MsgBox "保存成功"

End Sub

上面是通过VBA,插入数据到数据库,下面是从SQL查询Excel,然后直接insert into到数据库,也可以用数据库导入向导

--查询excel2007

select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0', 'Data Source=D:\2007.xlsxExtended Properties="Excel 12.0HDR=YesIMEX=1"')...[Sheet1$]

--查询excel2003

select * from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\2003.xls"Extended properties=Excel 5.0')...[Sheet1$]

第一步:在ghost xp系统中启动Access,在向导的提示下建立一个“空数据库”以便用于存放从Excel中导入的数据

第二步:打开要导入数据的数据库,切换到“外部数据”选项卡,选择“Excel”按钮,打开“导入数据”对话框。

第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表.xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。

第三步:在“选择数据源”对话框中,可以根据需要选择数据源,数据源就是我们之前准备好的“成绩表.xlsx”表格文件。同时选择“将数据源导入当前数据库的新表中”。

第五步:勾选“第一行含有列标题”选项,以免导入向导将表格第一排的标题也当做数据导入进来。点击“下一步”按钮

第六步:分别选择每一个数据列,并指定导入数据库后的数据类型。中文部分建议设置为“文本”,数字部分可以设置为“整数型”或“双精度型”。然后点击“下一步”按钮

第七步:接下来为数据表设置主键。主键是数据库中一种特殊的列,列的内容是一组自动增长的数字,如果没有实际的需要,我们选择“不要主键”并点击“下一步”按钮。

第八步:为即将生成的新标取一个名字。例如“学生成绩数据”,并点击“完成”按钮,结束导入。

本文集同步于GitHub仓库:# bluetata / concise-excel-vba

都知道学会了英语语法,再加上大量的词汇基础,就算基本掌握了英语了。

类似的要使用vba,也要入乡随俗,了解他的构成,简单的说vba包含 数据类型 、

变量 / 常量 、 对象 和常用的 语句结构 。

不过呢在量和复杂度上远低于英语,不用那么痛苦的记单词了,所以vba其实很简单的。

熟悉了规则之后剩下就是查官方函数啦,查Excel提供的可 *** 作对象啦。

顺带一提的是,函数其实也很容易理解,方便使用。拿到一个函数,例如 Sum ,

只要知道它是求多个数的和就够了,剩下的就是用了。例如 Sum(1000,9) 结果就是 1009 了。

函数的一大好处就是隐藏具体实现细节,提供简洁的使用方法。

Excel里的每一个单元格都是一个 数据 ,无论是数字、字母或标点都是数据。

对数据排排队,吃果果,对不同的数据扔到不同的篮子里归类,篮子就是 数据类型 了。

在Excel-vba中, 数据类型 只有 数值 、 文本 、 日期 、 逻辑 或 错误 五种类型。

前四种最为常用。具体描述参见下表:

表1.1 VBA数据类型

补充一点是,数组就像一筐水果,里面可以存不止一个数据。

他不是一个具体的数据类型,叫数据结构更合适些。

定义后不能被改变的量,就是 常量 ;相反的 变量 就能修改具体值。

在vba里,使用一个 变量/常量 要先声明。

常量 声明方法如下:</br>

Const 常量名称 As 数据类型 = 存储在常量中的数据

例如:

变量 声明方法如下:</br>

变量名,必须 字母 汉字 开头, 不能 包含空格、句号、感叹号等。

数据类型,对应上面 ↑ 表1.1里的那些

更多的声明方法,跟 Dim 声明的区别是作用范围不同:

使用数组和对象时,也要声明,这里说下数组的声明:

除了用 Dim 做常规的数组的声明,还有下面这些声明数组的方式:

数组常用的函数

函数说明

UBound(Array arr,[Integer i])</br>

UBound为函数名</br>

arr和i 为UBound的的参数,用中括号括起来的表示i为非必填参数</br>

arr和i 之前的Array,Integer表示对应参数的数据类型</br>

运算符的作用是对数据进行 *** 作,像加减乘除等。这块不再具体说明,列一下vba中常用的运算符。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6710963.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存