如果为空,则将文本框设为null

时间:2016-09-02 13:52:26

标签: mysql vba excel-vba excel

你好我在excel中有一个连接到mysql服务器的userform。 一切正常,除非我把日期文本框留空,我得到一个错误,日期的值不正确

在进一步的研究中我发现文本框在空时返回零​​长度字符串,而mysql只允许null。 无论如何,当我点击保存按钮时,将文本框设置为null。

2 个答案:

答案 0 :(得分:0)

继承我的解决方案,希望这会有所帮助。

基本上它是一个快速检查以查看有问题的文本框是否为空,如果是,则将其设为null:

If textbox1.value = "" then
    textbox1.value = null
end if

答案 1 :(得分:0)

最后一个解决方案,但如果您有20个日期列,这将是b的痛苦。不幸的是我有20个日期列.. :(

这是代码,对我来说,希望这可以帮助将来的某个人

Private Sub CommandButton1_Click()

设置cn = CreateObject(“ADODB.Connection”) 设置rs = CreateObject(“ADODB.Recordset”)

strCon =“Driver = {MySQL ODBC 5.3 Unicode Driver}; Server = localhost; Database = sample;” _ &安培; “用户=根;密码=密码;选项= 3;”

cn.Open strCon

如果txt5.Value =“”那么

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

cn.Execute SQLStr

否则

SQLStr = "insert into sample.details (ID,Name,Age,Gender,Date_of_Birth) values ('" & txt1.Value & "', '" & txt2.Value & "','" & txt3.Value & "','" & txt4.Value & "','" & Format(txt5.Value, "yyyy-mm-dd") & "');"

cn.Execute SQLStr

结束如果 结束子