我正在尝试在按钮单击时使用字符串值填充外部表单中的控件 - 当存在已存在的文本时这是完美的工作,但是如果没有任何内容则将其视为空值并因此返回类型不匹配错误。
我以为我可以通过使用:
来解决这个问题Nz(Forms!frmSpecifications!boxScratchpad.value, "") = "Text string"
但这没效果。
可能与我如何调用控件或控件本身的属性有关吗?
更新:在进一步研究之后,我已经在代码中找到了一个SQL查询执行的问题,该代码在同一个表上运行一个更新语句,而boxScratchpad通常从中获取数据(尽管该字段被输入boxScratchpad实际上没有更新)。如果我注释掉此代码以便更新语句不运行,则boxScratchpad将成功填充。似乎更新的表与boxScratchpad在同一代码中分配了一个新值之间可能存在冲突吗?
答案 0 :(得分:0)
首先,了解您要完成的工作以及您的代码所做的工作。
假设您的控件是文本框,则显示其文本的属性为value
。如果您的控件是按钮,则显示文本的属性为caption
。
您正在尝试为此控件值或标题指定字符串,如果这些属性当前为NULL,则不会出现问题。
错误在于nz。如果nz将控件的属性评估为NULL,它将返回空字符串作为答案,从而结束这种情况:
"" = "Some text"
会抛出错误"它需要一个对象"。
删除nz功能。
要真正测试SQL更新对控件的干扰,请使用vba编辑器中的中间窗口来执行和测试代码。