我试图在Ms Access(2010)中的值不为空的查询中显示列。
我有一个查询,现在给我这个,其中name,field1,...是列标题:
Name | field1 | field2 | field 3 | field 4 | field5
mike | x | | x | x |
所以现在我不想在该查询中看到Field2和Field5。我有更多的字段,然后是5,我只想看到一个有价值的字段。
它也很好如果你能告诉我一种获取列名的方法(ex field1,field3,field4)
由于
答案 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
编辑:我测试了代码,并进行了微调。现在应该可以在访问数据库中的任何表上正常工作。