在插入查询中添加case语句以将空字符串转换为null

时间:2016-09-03 04:32:33

标签: mysql vba excel-vba excel

我正在尝试将Excel VBA用户窗体中的值插入MySQLDBA。 日期列的空文本框值会出现此问题。 MySQL不接受"但它允许Null。

我可以在插入查询中添加一个case语句来检查列的值是否为空字符串,如果是,则为该列插入null?否则,它应该插入文本框的值。

这是我在VBA中的当前查询,其中应检查Date_of_Birth列是否为空字符串:

Str = "insert into sample.details (ID,Name,Age,Gender,Date_of_Birth) values ('" & txt1.Value & "', '" & txt2.Value & "','" & txt3.Value & "','" & txt4.Value & "','" & txt5.Value & "');"

P.S我尝试为txt5.value设置if条件但是没有用。

1 个答案:

答案 0 :(得分:0)

您可以使用IIf功能。

Str = "insert into sample.details (ID,Name,Age,Gender,Date_of_Birth) values ('" & txt1.Value & "', '" & txt2.Value & "','" & txt3.Value & "','" & txt4.Value & "'," & IIf(txt5.Value="","null","'" & txt5.Value & "'") & ");"