我在Access 2010中创建了一个表单,我根据文本框(B和C)填写表单,并从组合框(A)中选择。问题是如果任何文本框留空,我得到“无效使用空”错误。我注意到如果我将文本框变暗为Variant而不是Integer,我可以避免此错误。我不确定这是否是正确的解决方案。我可以更改以下脚本以避免此错误吗?
Private Sub ABCBoxEnter_Click()
Dim A As String
Dim B As Integer
Dim C As Integer
If Not IsNull(Me!ComboBox.Value) Then
A = Me!ComboBox.Value
B = Afield
C = Bfield
values = "VALUES ("
values = values & "'" & ID & "','" & A & "','" & B & "','" & C & "')"
SQL = "INSERT INTO ContactTable (ID, A, B, C)"
SQL = SQL & values
DoCmd.RunSQL SQL
Me.B.Value = ""
Me.C.Value = ""
End If
End Sub
答案 0 :(得分:0)
您可以使用 Nz :
@functions {
public int getRandomNumber(int min, int max, Random rnd, List<int> featuredStories) {
int randomNumber = rnd.Next(min, max);
if (featuredStories.Contains(randomNumber))
{
randomNumber = getRandomNumber(min, max, rnd, featuredStories);
}
else
{
featuredStories.Add(randomNumber);
}
return randomNumber;
}
或者,更好的是,实现我的功能CSql
答案 1 :(得分:0)
最大的问题是:当值为Null
时,您希望发生什么?
正如您所注意到的,整数和字符串不能包含Null
,而Variant
可以包含Variant
。将中间变量调整为Nz
是一种在您的代码中可行的方法。您还可以使用Null
函数将'
替换为空字符串(如果称为字符串),或者将0替换为整数。
请注意,如果您要从SQL语句中删除Iif(IsNull(B), "Null", B)
撇号,则会遇到错误,您必须使用B
,其中只有if f == 'mass':
# construct parameters with for loop maybe:
parameters = {key: value for (key, value) in [('a','b'),('c','d')]}
# parameters = {'a': 'b', 'c': 'd'}
else:
parameters = {key: value for (key, value) in [('b','a'),('d','c')]}
SQL语句。