.mdb 中的空白字段用 9999 填充 vba
Empty field in .mdb to be filled with 9999 vba
我有 tblTFM,其中包含来自 TempTable_Update 的新插入内容,而 TempTable 有一个空白字段,我希望将其显示为 9999。
这是我插入新字段的代码,它工作正常。
myDB.Execute "INSERT INTO tblTFM(TFMAgreNu)" _
& "SELECT DISTINCT [TempTable_Update].[TFMAgreNu] " _
& "FROM TempTable_Update " _
& "WHERE (((Exists (SELECT TFMAgreNu FROM tblTFM WHERE tblTFM.TFMAgreNu = TempTable_Update.TFMAgreNu))=False));"
myDB.Execute "UPDATE TempTable_Update " _
& "INNER JOIN tblTFM ON [TempTable_Update].[TFMAgreNu] = [tblTFM].[TFMAgreNu] " _
& "SET [TempTable_Update].[TFM_ID] = [tblTFM].[TFM_ID] " _
& "WHERE [TempTable_Update].[TFMAgreNu] = [tblTFM].[TFMAgreNu];"
但我确实研究了如何进行更新以将空白字段设置为 9999 并尝试了这个...
strQuery = "UPDATE [tblTFM] SET [tblTFM].[TFMAgreNu] = 0 " _
& "WHERE ((([tblTFM].[TFMAgreNu])="")); " _
& "UPDATE [tblTFM] SET [tblTFM].[TFMArgeNu] = 9999 " _
& "WHERE ((([tblTFM].[TFMAgreNu])= 0 ));"
效果不佳
还有这个……
strQuery = "UPDATE tblTFM SET tblTFM.TFMAgreNu = 9999 WHERE tblTFM.TFMAgreNu IS NULL
效果不佳...
有人可以帮我提供此更新的代码吗?
您不能像第一次尝试那样在一个查询中有 两个 UPDATE 语句。
如果 TFMAgreNu 是数字字段,那么这应该有效:
strQuery = "UPDATE tblTFM SET tblTFM.TFMAgreNu = 9999 " & _
"WHERE Nz(tblTFM.TFMAgreNu, 0) = 0"
它使用 Nz()
函数检查 NULL 和 0。
编辑
对于文本字段,使用
strQuery = "UPDATE tblTFM SET tblTFM.TFMAgreNu = '9999' " & _
"WHERE Nz(tblTFM.TFMAgreNu, '') = ''"
我有 tblTFM,其中包含来自 TempTable_Update 的新插入内容,而 TempTable 有一个空白字段,我希望将其显示为 9999。
这是我插入新字段的代码,它工作正常。
myDB.Execute "INSERT INTO tblTFM(TFMAgreNu)" _
& "SELECT DISTINCT [TempTable_Update].[TFMAgreNu] " _
& "FROM TempTable_Update " _
& "WHERE (((Exists (SELECT TFMAgreNu FROM tblTFM WHERE tblTFM.TFMAgreNu = TempTable_Update.TFMAgreNu))=False));"
myDB.Execute "UPDATE TempTable_Update " _
& "INNER JOIN tblTFM ON [TempTable_Update].[TFMAgreNu] = [tblTFM].[TFMAgreNu] " _
& "SET [TempTable_Update].[TFM_ID] = [tblTFM].[TFM_ID] " _
& "WHERE [TempTable_Update].[TFMAgreNu] = [tblTFM].[TFMAgreNu];"
但我确实研究了如何进行更新以将空白字段设置为 9999 并尝试了这个...
strQuery = "UPDATE [tblTFM] SET [tblTFM].[TFMAgreNu] = 0 " _
& "WHERE ((([tblTFM].[TFMAgreNu])="")); " _
& "UPDATE [tblTFM] SET [tblTFM].[TFMArgeNu] = 9999 " _
& "WHERE ((([tblTFM].[TFMAgreNu])= 0 ));"
效果不佳
还有这个……
strQuery = "UPDATE tblTFM SET tblTFM.TFMAgreNu = 9999 WHERE tblTFM.TFMAgreNu IS NULL
效果不佳...
有人可以帮我提供此更新的代码吗?
您不能像第一次尝试那样在一个查询中有 两个 UPDATE 语句。
如果 TFMAgreNu 是数字字段,那么这应该有效:
strQuery = "UPDATE tblTFM SET tblTFM.TFMAgreNu = 9999 " & _
"WHERE Nz(tblTFM.TFMAgreNu, 0) = 0"
它使用 Nz()
函数检查 NULL 和 0。
编辑
对于文本字段,使用
strQuery = "UPDATE tblTFM SET tblTFM.TFMAgreNu = '9999' " & _
"WHERE Nz(tblTFM.TFMAgreNu, '') = ''"