There's probably some way to do it by setting the Column Header's (I'm assuming it's a Label?) .Visible property.
However, the easiest say, IMO is to just have a check in each Column that says If the column doesn't apply, print "N/A"
If you're hellbent on making the Label invisible, you'd probably put the code in the Report's OnOpen event. Maybe something like this (I haven't actually tried it, so I don't know if this will really work or not):
Code:
If Len([Column8] & vbNullString) = 0 Then
Me!Label8.Visible = False
Else
Me!Label8.Visible = True
End If
Assuming [Column8] is the name of the Table field containing the null data and that Label8 is the name of the Column Header you want to hide.
Generally speaking, I try to stay away from coding in Reports though so I don't know the exact syntax.