【发布时间】:2020-07-01 09:19:33
【问题描述】:
我正在尝试将 Excel 文件上传到 SQL Server 表中,但出现此错误:
将字符串 VBA 中的数据/或时间转换为 SQL SERVER 时转换失败
我的源表有格式日期,我的目标表有格式日期。
我应该怎么做才能使这段代码工作
我正在尝试使用CDATE(),但它不起作用。
Private Sub EventData_Click()
Set conn = New ADODB.Connection
cs = "DRIVER=SQL SERVER;"
cs = cs & "DATABASE=MAGANG;"
cs = cs & "SERVER=FELIX"
conn.Open cs, "", ""
sqlcmd = "CREATE TABLE Event_Data(ID Varchar(255) PRIMARY KEY, EVENT Varchar(255),DATE DATE);"
On Error GoTo errormastertable
conn.Execute sqlcmd
conn.Close
Set conn = Nothing
errormastertable:
Dim l_row As Long
Dim s_ID As String
Dim s_EVENT As String
Dim s_DATE As Date
Set conn = New ADODB.Connection
cs = "DRIVER=SQL SERVER;"
cs = cs & "DATABASE=MAGANG;"
cs = cs & "SERVER=FELIX"
With Workbooks("Event_Data").Sheets("4-Event_Data")
conn.Open cs, "", ""
l_row = last_row_with_data(1, ActiveSheet)
For i = 2 To l_row
s_ID = .Cells(i, 1)
s_EVENT = .Cells(i, 2)
s_DATE = .Cells(i, 3)
sqlcmd = "insert into dbo.Event_Data (ID,EVENT,DATE) values ('" & s_ID & "', '" & s_EVENT & "', '" & s_DATE & "')"
conn.Execute sqlcmd
Next
conn.Close
Set conn = Nothing
End With
Workbooks("Event_Data").Close savechanges:=False
End If
End Sub
【问题讨论】:
-
参数化你的查询,问题就会消失
-
如何将它应用到我的代码中?
-
请查看 Larnu 提供的链接,它包含一个非常好的示例。如果您遇到困难,请随时提出新问题。
标签: sql-server excel vba