gpt4 book ai didi

sql-server - SQL 将表值复制到新表

转载 作者:行者123 更新时间:2023-12-02 11:44:08 26 4
gpt4 key购买 nike

您好,我正在尝试使用Select * INTO query将Excel工作表中的值复制到同一数据库中的新表。

提取到 Excel 的数据来自其他表,在编辑 Excel 中的某些列后,我需要将 Excel 工作表发送回 SQL 数据库并创建新表。

我的代码出现问题,提示错误:

Run- time error '-2147217900 ' Automation Error

我正在使用VBA 宏将表值从 Excel 导入和导出到SQL

这是我的代码

Dim adoCN As ADODB.Connection
Dim sConnString As String
Dim sSQL As String
Dim lRow As Long, lCol As Long

sConnString = "Provider=sqloledb;Server=;Database=mycon;User Id=;Password="

Set adoCN = CreateObject("ADODB.Connection")

adoCN.Open sConnString

'Assumes that you have Field1, Field2 and Field3 in columns A, B and C
'For this example we can assume that the data exists on Sheet1, with a header on row
'1 and data in rows 2-11
'Also assume that the fields are defined as character (e.g. varchar or char)
'Text values must be enclosed in apostrophes whereas numeric values should not.

'adoCN.Open

For lRow = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

sSQL = "SELECT * INTO TestTable FROM Sheets(1)$"

***adoCN.Execute sSQL***

Next lRow

adoCN.Close

Set adoCN = Nothing


'On Error GoTo 0

行错误:adoCN.执行 sSQL

请帮帮我。

最佳答案

我非常确定错误是 SQL 无法识别“Sheets(1)$”。短语 i“sSQL”被发送到 adodb.connection,因此它不会在 Excel 中处理(尽管从 Excel-VBA 调用)。因此,来自 Excel 的任何引用都必须作为字符串传递到那里,否则将导致错误。

我不会尝试一次将整个表放入 SQL 中,而是逐行执行此操作,因为如果您有任何数据问题(字符串为 Long,数据格式错误),则整个表将被退回。

我会让它类似于 http://www.vb-magazin.de/forums/forums/post/9581.aspx

(如果您需要任何翻译帮助,请告诉我)

...有一个重要的区别:每次“add.new”成功后,我会在 Excel 中的相应行中添加注释,因此它肯定不会被第二次传输。为此,您可以将其放在 dbRecord.Update 行之后

xls_Appl.ActiveCell.Offset(I,6).Value = "send_to_sql"

当然,在处理每行的开头,您需要检查该文本是否已经存在,如果是这种情况,请转到下一项。

希望这对你有帮助,最大

关于sql-server - SQL 将表值复制到新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18481685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com