2013-07-02 54 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