Access VBA 中的任何函数都像 if(me.Text01.value is null, 'null',me.Text01.value)
Any Function in Access VBA to work like if(me.Text01.value is null, 'null',me.Text01.value)
我正在编写下面的代码以将控制值插入 table
currentdb.execute "insert into Table (AAA,AAB,AAC) values('"&me.Text1.value&"','"&me.text2.value&"','"&me.text3.value&")"
有时这些文本框之一没有任何价值。有没有一个函数可以用一句话来写语句?
currentdb.execute "insert into Table (AAA,AAB,AAC) values('"&if(me.Text1.value is null,null,me.Text1.value)&"','"&if(me.text2.value is null, null,me.Text2.value)&"','"&if(me.text3.value is null, null,me.Texte.value)&")"
因为我不想构造很多 if else 子句。
if isnull(me.Text1.value) then
...
else
...
end if
听起来你要的是 Nz Function
但是,您可以执行参数查询,而不是将文本框值写入 INSERT
语句文本。并且该查询语句文本不需要根据任何文本框是否包含 Null 而更改。
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim strInsert As String
strInsert = "INSERT INTO YourTable (AAA, AAB, AAC) VALUES (p1, p2, p3);"
Set db = CurrentDb
Set qdf = db.CreateQueryDef(vbNullString, strInsert)
qdf.Parameters("p1").Value = Me.Text1.Value
qdf.Parameters("p2").Value = Me.Text2.Value
qdf.Parameters("p3").Value = Me.Text3.Value
qdf.Execute dbFailOnError
Debug.Print "rows added: " & db.RecordsAffected
虽然参数很整齐,但直接回答你的问题是我的函数。
试试这个 - 如果文本框没有值,它会将空字符串插入 table:
CurrentDb.Execute "INSERT INTO Table (AAA,AAB,AAC) " & _
"VALUES ('" & Nz(Me.Text1.Value, '') & "','" & _
Nz(Me.Text2.Value, '') & " ','" & Nz(Me.Text3.Value, '') & ")"
我正在编写下面的代码以将控制值插入 table
currentdb.execute "insert into Table (AAA,AAB,AAC) values('"&me.Text1.value&"','"&me.text2.value&"','"&me.text3.value&")"
有时这些文本框之一没有任何价值。有没有一个函数可以用一句话来写语句?
currentdb.execute "insert into Table (AAA,AAB,AAC) values('"&if(me.Text1.value is null,null,me.Text1.value)&"','"&if(me.text2.value is null, null,me.Text2.value)&"','"&if(me.text3.value is null, null,me.Texte.value)&")"
因为我不想构造很多 if else 子句。
if isnull(me.Text1.value) then
...
else
...
end if
听起来你要的是 Nz Function
但是,您可以执行参数查询,而不是将文本框值写入 INSERT
语句文本。并且该查询语句文本不需要根据任何文本框是否包含 Null 而更改。
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim strInsert As String
strInsert = "INSERT INTO YourTable (AAA, AAB, AAC) VALUES (p1, p2, p3);"
Set db = CurrentDb
Set qdf = db.CreateQueryDef(vbNullString, strInsert)
qdf.Parameters("p1").Value = Me.Text1.Value
qdf.Parameters("p2").Value = Me.Text2.Value
qdf.Parameters("p3").Value = Me.Text3.Value
qdf.Execute dbFailOnError
Debug.Print "rows added: " & db.RecordsAffected
虽然参数很整齐,但直接回答你的问题是我的函数
试试这个 - 如果文本框没有值,它会将空字符串插入 table:
CurrentDb.Execute "INSERT INTO Table (AAA,AAB,AAC) " & _
"VALUES ('" & Nz(Me.Text1.Value, '') & "','" & _
Nz(Me.Text2.Value, '') & " ','" & Nz(Me.Text3.Value, '') & ")"