将空字符串从Excel插入SQL(int)

将空字符串从Excel插入SQL(int),sql,vba,Sql,Vba,我在Excel中有一个要插入SQL的数据 有些行为空,当我尝试将数据插入SQL时,数据将作为“0”而不是“NULL”插入 数据示例如下: --------------------------------- Items Total Price --------------------------------- Glue 4 $1 Socks 2 $7 Tumbler

我在Excel中有一个要插入SQL的数据

有些行为空,当我尝试将数据插入SQL时,数据将作为“0”而不是“NULL”插入

数据示例如下:

---------------------------------
Items          Total      Price
---------------------------------
Glue             4          $1
Socks            2          $7
Tumbler                     $40
Pen             10          $1
Eraser                      $0.5
---------------------------------

Items(char(50))
Total(int)
Price(float)
是否有人知道如何将空白数据插入为NULL而不是“0”?< /P> 以下是我到目前为止的情况

STRSQL = "INSERT INTO [Stationary].[dbo].[Stocks] ([Items],[Total],[Price])" & _
"VALUES ('" & Range("A" & i) & "','" & Range("B" & i) & "','" & Range("C" & i) & "')"
如果有人能在这方面帮助我,我将不胜感激。

请尝试更换

& Range("B" & i) &


允许总计(int)列为null根据数据库的风险和值,您可能还希望清理/转义从单元格读取的数据,以避免恶意SQL注入。这应该可以很好地工作。一个小的增强,考虑使用<代码> Value2<代码>代替<代码>值,以防止有人(可能不太可能)的场景破坏了您对该列的格式化。但是,这种增强不是强制性的。@NAJAA BAZILAH:很高兴我能帮上忙!
& IIf(Range("B" & i).value = "", "'Null'", Range("B" & i).value) &