仅显示具有值的列

时间:2014-08-22 09:58:32

标签: ms-access

我试图在Ms Access(2010)中的值不为空的查询中显示列。

我有一个查询,现在给我这个,其中name,field1,...是列标题:

Name  | field1 | field2 | field 3 | field 4 | field5
mike  | x      |        | x       | x       |

所以现在我不想在该查询中看到Field2和Field5。我有更多的字段,然后是5,我只想看到一个有价值的字段。

它也很好如果你能告诉我一种获取列名的方法(ex field1,field3,field4)

由于

1 个答案:

答案 0 :(得分:2)

您必须在SQL中使用简单的WHERE语句。例如:

SELECT tbl.*, tbl.field2, tbl.field5
FROM tbl
WHERE tbl.field2 Is Not NULL AND tbl.field5 Is Not Null;

这将返回所有字段和所有行,其中field2和field5不是Null。

编辑:由于我对vba比较熟悉,我会使用以下方法达到评论中所述的所需输出。 首先创建查询。

SELECT tbl.*
FROM tbl
WHERE tbl.ID = 12345;

假设您将其命名为“qry_record”。之后,我将使用recorset遍历字段,并使用具有值的字段创建一个新的动态sql语句。

Dim rs As Recordset
Dim fld As Field
Dim sqlstatement As String: sqlstatement = "SELECT "
Set rs = CurrentDb.OpenRecordset("qry_record")

With rs
    .MoveFirst
    For Each fld In .Fields
        If IsNull(fld.value) = False Then
            Debug.Print fld.Name
            sqlstatement = sqlstatement & "tbl." & fld.Name & ", "
        End If
    Next
End With
rs.Close
Set rs = Nothing

sqlstatement = sqlstatement & "FROM tbl"
DoCmd.RunSQL sqlstatement

编辑:我测试了代码,并进行了微调。现在应该可以在访问数据库中的任何表上正常工作。