As far as I can tell, when you've determined which door is meant you can just (aDoor open:) without caring about its current state, or if the player is quite close enough.
If there's two doors on opposite ends of the room, a simple position check would suffice. Then you let the doors handle the details:
(if (Said 'open/door')
(if (> (gEgo x?) 160) ; are we on the right half of the screen, where the bar door is?
(aDoor open:) ; being right up to the door and already being opened is handled for us.
)
)
Or if there's only the one door in this room, just (if (Said 'open/door') (aDoor open:) ) will do ya.
(The correct phrasing for what you tried to do, to check if the door is closed, is (if (== (aDoor doorState?) DOOR_CLOSED), by the way. What you did was try to compare an object reference to a small number, which would be like... "is 800 equal to 3".)