ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Export table to SQL (https://www.excelbanter.com/excel-programming/322772-export-table-sql.html)

winter

Export table to SQL
 
I want to write some VBA code to export a worksheet in excel to a table in
SQL. Is that possible? Thanks a lot!

Jim Thomlinson[_3_]

Export table to SQL
 
Sure it is possible. You need to understand ADO, SQL (enough to create a
query) and have the ODBC drivers.

I can give you some code that I Use to update a table in Access. The only
difference is the Connection...

If you want the code let me know...

"winter" wrote:

I want to write some VBA code to export a worksheet in excel to a table in
SQL. Is that possible? Thanks a lot!


winter

Export table to SQL
 
Thanks a lot, I almost thought it was possible. I know how to run a query in
sql and return the results to excel, but don't know the opposite. If you
could show me, it will be great.

"Jim Thomlinson" wrote:

Sure it is possible. You need to understand ADO, SQL (enough to create a
query) and have the ODBC drivers.

I can give you some code that I Use to update a table in Access. The only
difference is the Connection...

If you want the code let me know...

"winter" wrote:

I want to write some VBA code to export a worksheet in excel to a table in
SQL. Is that possible? Thanks a lot!


Jamie Collins

Export table to SQL
 

winter wrote:
You need to understand ADO, SQL (enough to create a
query) and have the ODBC drivers.


I know how to run a query in
sql and return the results to excel, but don't know the opposite.


Are you using 'SQL' as a contraction for Microsoft SQL Server?

I think by mentioning ODBC drivers, Jim probably meant something like
this:

Sub just_four_lines()
Dim con As Object
Set con = CreateObject("ADODB.Connection")
con.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\MyWorkbook.xls;" & _
"Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"
con.Execute _
"INSERT INTO [ODBC;Driver={SQL Server};" & _
"SERVER=MYSERVER;DATABASE=MyDatabase;" & _
"UID=;Pwd=;].MyTable (data_col)" & _
" SELECT MyMemoCol AS data_col FROM [MySheet$];"
End Sub

However, it can be done with OLE DB alone e.g.

Sub four_lines_more()
Dim con As Object
Set con = CreateObject("ADODB.Connection")
con.Open _
"Provider=SQLOLEDB.1;Data Source=MYSERVER;" & _
"Initial Catalog=MyDatabase;User Id=;password=;"
con.Execute _
"INSERT INTO MyTable (data_col) " & _
" SELECT data_col FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0'," & _
"'Excel 8.0;HDR=YES;IMEX=1;Database=C:\MyWorkbook.xls'," & _
"'SELECT MyMemoCol AS data_col FROM [MySheet$]');"
End Sub

Jamie.

--



All times are GMT +1. The time now is 05:50 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com