Предположим, у меня есть таблица в Excel с двумя столбцами (Name, Rate) (скажем, это имя этой таблицы tExcel
). Таблица начинается в клетке (2,1), и дата статично (в ячейке (1,1))Вставка значений в таблицу SQL Server через VBA
Я хочу, чтобы вставить эти значения в SQL Server 2008 tRate
таблица со следующей логикой
insert tRate(ID, Rate, Date)
select
s.ObjectID, e.Rate, Date -- date comes from cell(1,1). DateType is smalldatetime
from
tExcel e, tSecurity s
where
e.Name = s.Number
I 've создал соединение
Sub disp_cust()
Dim adoCN As ADODB.Connection
Dim sConnString As String
Dim sSQL As String
Dim lRow As Long, lCol As Long
Set cn = New ADODB.Connection
sConnString = "Provider=sqloledb;Server=xxx;Database=xxx;User Id=xxx;Password=xxx"
Set adoCN = CreateObject("ADODB.Connection")
adoCN.Open sConnString
adoCN.Close
Set adoCN = Nothing
End Sub
Спасибо за помощь.
EDIT для @jaimetotal ответа
sql= "insert tRate(ID, Rate, Date) SELECT s.ObjectId ," & Replace(Row.Cells(2).Value, ",", ".") & ",'" & defaultDate & "' FROM tSecurity s where s.number = '" & row.Cells(1).Value & "'; "
[Вредные привычки пинать: использование старого стиля JOIN и] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old -style-joins.aspx) - стиль старого стиля * разделенный запятыми список таблиц * был заменен на * правильный * ANSI 'JOIN' синтаксис в ANSI - ** 92 ** SQL Standard (** более 20 лет ** назад), и его использование обескуражено –
Спасибо @marc_s, но проблема определенно не связана с вашим комментарием – Sher