计算70 - Access 2000中具有值的列数?

时间:2017-07-14 08:07:25

标签: vba ms-access

我的表中有70列,大部分都是空的。我想删除没有单个值的列。问题是,该表有18000行,因此手动滚动是愚蠢的。

我厌倦了Expression和Select查询,但我看到表达式可以接受有限数量的字符,即没有足够的空间覆盖所有70列。

以下是我的尝试:

Format(IIf([t4k1],[t4k1],""), "00") & " " & Format(IIf([t4k2],[t4k2],""), "00") & " " &
Format(IIf([t4k3],[t4k3],""), "00") & " " & Format(IIf([t4k4],[t4k4],""), "00") & " " &
Format(IIf([t4k5],[t4k5],""), "00") & " " & Format(IIf([t4k6],[t4k6],""), "00") & " " &
Format(IIf([t4k7],[t4k7],""), "00") & " " & Format(IIf([t4k8],[t4k8],""), "00") & " " &
Format(IIf([t4k9],[t4k9],""), "00") & " " & Format(IIf([t4k10],[t4k10],""), "00") & " " &
Format(IIf([t4k11],[t4k11],""), "00") & " " & Format(IIf([t4k12],[t4k12],""), "00") & " " &
Format(IIf([t4k13],[t4k13],""), "00") & " " & Format(IIf([t4k14],[t4k14],""), "00") & " " &
Format(IIf([t4k15],[t4k15],""), "00") & " " & Format(IIf([t4k16],[t4k16],""), "00") 

如您所见,该表有70列,t4k1,t4k2,t4k3,... t4k70

表格如下:

empty columns access 2000

如何正确检查所有70列,是否使用VBA代码?

代码怎么样?

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我会在循环中使用DCount()。 E.g。

Sub PrintEmptyColumns()

    Dim i As Long
    For i = 1 To 70
        Debug.Print i, DCount("*", "CPA_foo", "Nz(t4k" & i & ", '') <> ''")
    Next i

End Sub

如果打印(Ctrl + G打开直接窗口)

x     0

然后列t4k<x>的行数为零。