2013-07-02 27 views
0

我有一个访问vba模块,正在做传输电子表格。使用sql查询传输spreadsheets表格

DoCmd.TransferSpreadsheet acImport, 8, "MyTable", "\\hello\world.xls", True, "a1:b1000" 

我将访问分贝sqlsql queries.

究竟是什么VBA代码的SQL代码替换所有模块的过程是? DoCmd.TransferSpreadsheet acImport, 8, "MyTable", "\\hello\world.xls", True, "a1:b1000"

感谢帮助,谢谢!

+0

你想要移动到SQL服务器吗?或者你想继续使用Access,但由于某种原因不要使用VBA? – Scotch

+0

我把所有的东西都移到了SQL服务器上...... – Pradeep

+0

当你评论别人的答案时,你可以用csv或excel数据源做一个'SELECT INTO'。我在 – Scotch

回答

0

不幸的是没有直接等效特点,但有几个方法,你可以采取:

您可以使用SQL Server集成服务从电子表格中读取数据并将其推入数据库(不只是SQL服务器)。

或者在Access中附加一个SQL表并继续使用Access作为Excel和SQL Server之间的数据桥。

+0

感谢您的澄清...从Excel中导入数据,我可以使用这个SQL查询:SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source = C:\ test \ xltest.xls; Extended Properties = Excel 8.0')... [客户$] ...但我想知道的是传输电路板对这些参数做了什么......“a1:b1000” - 这意味着选择top(1000)? DoCmd.TransferSpreadsheet acImport,8:数字“8”在这里表达的是什么? – Pradeep

+0

@pradeep数字8是电子表格类型(excel文档的格式)的参数。 8表示excel 97-2000。参数值列表可以在这里找到http://msdn.microsoft.com/en-us/library/office/bb225982(v=office.12).aspx – Scotch

0

虽然不完全一样,但您应该可以通过继续将转移传票放入您的Access数据库来轻松完成相同的结果...然后您想要将其转移到下一步并将该表转换为你的SQL Server数据库是这样的:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strTableName, strFileName, True 
DoCmd.TransferDatabase acExport, "ODBC Database", "ODBC;Driver={SQL Server};Server=YOUR-SERVER;Database=YOUR-DB;Trusted_Connection=Yes", acTable, strTableName, strTableName