使用 VBA 在 SQL Server 中上传 Excel 文件数据

Posted

技术标签:

【中文标题】使用 VBA 在 SQL Server 中上传 Excel 文件数据【英文标题】:Excel file data upload in SQL Server using VBA 【发布时间】:2018-01-13 20:40:56 【问题描述】:

我的问题是,我们必须创建一个 VBA 用户表单,其中有上传按钮,一旦我们单击该按钮,只应显示 .xls 或 .xlsx 文件,并且一旦我们选择要上传的所选文件的任何 Excel 文件使用 VBA 的 sql 服务器。

我想在 sql server 中选择位于浦那的任何方式的 excel 文件数据,我们在不同的位置,比如海得拉巴。

您的帮助将不胜感激。我是 VBA 新手,请帮助任何 VBA 冠军。

【问题讨论】:

你的问题没有提到你需要什么帮助。 (它只是列出了您要执行的操作。)从问题中无法判断您是在询问如何创建表单,还是必须向其添加按钮,或者如何向按钮的 Click 事件添加代码, 或如何将 Excel 文件导入 SQL, 或.....请将问题缩小到您的当前问题是什么。 【参考方案1】:

嗯,您当然可以使用 SSIS 为您完成这项工作。

问题 您不能在自己的帖子上投票 0

有几种方法可以做到这一点。这里有几个选项供您选择。

http://www.singhvikash.in/2012/11/ssis-how-to-loop-through-multiple-excel.html

https://www.youtube.com/watch?v=1WXKpkwjhX8

http://sqlage.blogspot.in/2013/12/ssis-read-multiple-sheets-from-excel.html

http://beyondrelational.com/modules/24/syndicated/398/Posts/18163/ssis-how-to-loop-through-multiple-excel-sheets-and-load-them-into-a-sql-table.aspx

http://www.codeproject.com/Tips/395541/How-to-load-data-from-multiple-Excel-sheets-to-any

http://www.sqlis.com/sqlis/post/Looping-over-files-with-the-Foreach-Loop.aspx

或者,链接到 Excel 文件,然后导入数据。

How to Bulk Insert from XLSX file extension?

或者,将每个 Excel 文件保存为文本文件,然后循环浏览文件夹中的所有文本文件。

DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=10000)
BEGIN

PRINT @intFlag


declare @fullpath1 varchar(1000)
select @fullpath1 = '''\\FTP\your_path' + convert(varchar, getdate()- @intFlag , 112) + '_your_file.txt'''
declare @cmd1 nvarchar(1000)
select @cmd1 = 'bulk insert [dbo].[your_table] from ' + @fullpath1 + ' with (FIELDTERMINATOR = ''\t'', FIRSTROW = 2, ROWTERMINATOR=''0x0a'')'
exec (@cmd1)


SET @intFlag = @intFlag + 1

END
GO

现在,在这个例子中,我正在查看一堆几乎同名的苍蝇。文件名的区别仅在于文件名中的日期:

convert(varchar, getdate()- @intFlag , 112)

你必须有某种类似的结构,对吧。但愿如此!否则,遍历文件将变得更加困难。

【讨论】:

以上是关于使用 VBA 在 SQL Server 中上传 Excel 文件数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 从 SQL Server 查询 VIEW

在 Access 中使用 ODBC 连接到 MS SQL Server 2012:手动调用查询和在 VBA 中调用查询之间的巨大时间差异

VBA 将日期参数传递给 SQL Server 存储过程

Excel VBA 连接各种数据库 VBA连接SQL Server数据库

使用 VBA 将 Excel 数据导入 SQL Server 表

如何使用 Access VBA 更新所有 ODBC 链接的 SQL Server 表的服务器名称