使用 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 文件数据的主要内容,如果未能解决你的问题,请参考以下文章
在 Access 中使用 ODBC 连接到 MS SQL Server 2012:手动调用查询和在 VBA 中调用查询之间的巨大时间差异
Excel VBA 连接各种数据库 VBA连接SQL Server数据库