将数据从EXCEL插入数据库

时间:2013-11-25 10:55:54

标签: excel vba excel-vba-mac

 ' Create the Connection and Recordset objects.
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Dim val As String
    val = Range("B5").Value


    ' Open the connection and execute.
    conn.Open sConnString

    Dim item As String
    item = "INSERT INTO [IndustrialComp].[dbo].[Header]("
    item = item & "  [server_name] "

    item = item & "  )Values("
    item = item & "  '" & val & "')"


    conn.Execute item

上面的代码将B5中的任何值插入sql server 08数据库(industcomp)一个名为header的表和一个名为server_name的列。

我基本上希望在此数据库中插入多个值。这三个列是server_name,phys和virt。

例如b5插入server_name .... c5插入phys ... d5插入virt。

我是否需要声明多个字符串,或者是否有办法基本列出相应列的值?

由于

1 个答案:

答案 0 :(得分:0)

你可以这样做

'Create the Connection and Recordset objects.
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Dim val As String, val2 as string, val3 as string 
val = Range("B5").Value
val2 = Range("C5").Value
val3 = Range("D5").Value

' Open the connection and execute.
conn.Open sConnString

Dim item As String
item = "INSERT INTO [IndustrialComp].[dbo].[Header]("
item = item & "  [server_name], [phys], [virt] "

item = item & "  )Values("
item = item & "  '" & val & "', '" & val2 & "', '" & val3 & "')"


conn.Execute item

如果您控制输入,这很好。如果您要交给第三方,请小心SQL注入。

例如,用户可以将以下内容放入B5单元格

”, '', ''); DROP TABLE HEADER; -

如果连接有权,你就会遇到麻烦。

在这种情况下始终清理用户输入并尽可能使用参数化的SQL。

希望这有帮助。