OK, to answer the mechanical part of the question, it is possible to disable a command button but you can't lock it. You can also make it transparent (i.e. not visible.) Note, however, that you cannot do this from the command button's click event because you can't disable the control that currently has focus, and after a click, the button WILL have focus.
If you disable the button, then nobody can click it. You can also make it transparent, which means nobody can even see it. You would probably want to set cmd.Enable=False and, optionally, cmd.Transparent=True for the button-control (here, named cmd, but you can put in the correct control name.)
The catch is WHEN to do it as well as how / when to undo it. When you click the button, there is a click event and that is where most of the work of the button gets done. HOWEVER, as long as the command button retains focus, it cannot be disabled. So that means you need some way of knowing that the button needs to be / stay disabled. GPGeorge's question becomes immediately relevant. There are some tricks one can play, but generally the best way is a software flag in the form's class module's declaration area that remembers that the button was disabled. That way, you can test in the button-click routine whether the button IS supposed to be disabled and, if so, just do an Exit Sub without doing anything else. BUT this might not be enough, depending on the intended persistence of the button's condition.
I can tell you the method and some tricks of the trade, but without knowing the strategy of the question, nobody is going to give you a really good answer. We don't know the "rules" of this exercise.