将数据从Excel VBA宏插入SQL SVR 2008 DB

时间:2013-12-02 10:41:31

标签: sql excel sql-server-2008 excel-vba vba

我在Excel中使用VBA宏来将数据从单元格插入到SQL Server 2008数据库中。

我按顺序将数据放入单元格中,例如1,2,3,4,5 ...等

当VBA代码将上述数字插入数据库中的一列时......数字没有排序,它们看起来像2,3,1,4,5 ..

有没有理由为什么这样安排数据?它发生在文本以及数字上。

以下是我的一些代码;


Dim val1 As String, val2 As String, val3 As String, val4 As String

val1 = Range("B142").Value
val2 = Range("C142").Value
val3 = Range("D142").Value
val4 = Range("E142").Value

conn.Open sConnString

Dim item4 As String
item4 = "INSERT INTO [IndustrialComp].[dbo].[Network]("
item4 = item4 & "  [server_name],[network_name],[license],[version]"

item4 = item4 & "  )Values("
item4 = item4 & "  '" & val1 & "', '" & val2 & "', '" & val3 & "','" & val4 & "')"

'row 2

Dim val5 As String, val6 As String, val7 As String, val8 As String

val5 = Range("B143").Value
val6 = Range("C143").Value
val7 = Range("D143").Value
val8 = Range("E143").Value

Dim item5 As String
item5 = "INSERT INTO [IndustrialComp].[dbo].[Network]("
item5 = item5 & "  [server_name],[network_name],[license],[version]"

item5 = item5 & "  )Values("
item5 = item5 & "  '" & val5 & "', '" & val6 & "', '" & val7 & "','" & val8 & "')"

1 个答案:

答案 0 :(得分:0)

数据库本身并不是按照添加内容的顺序排序的。相反,它们具有可用于定义不同订单的键。

如果您希望它们以特定顺序出现,例如添加它们的顺序,你必须添加一列来保存行号,或者你想要排序的任何内容。

如果您希望自动添加排序顺序列,可以使用IDENTITY列:

CREATE TABLE Network(
-- This column will be filled in automatically starting with 1
    ix int identity primary key, 
    -- These are your other columns.
    [server_name] nvarchar(50),
    [network_name] nvarchar(50),
    [license] nvarchar(50),
    [version] nvarchar(50)
)

ix是索引的缩写,通常用于标识列。如果更有意义,可以使用id。) 然后,在阅读数据时,请记住使用ORDER BY ix