.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, '') = ''"