You should return the value of your output parameter:
checkAccess = cmd.Parameters("@IsAllowed").Value
In addition, the output parameters in ADO do not require an initial value, and the adBoolean parameters do not require a size, so you can change your last parameter to:
cmd.Parameters.Append(cmd.CreateParameter("@IsAllowed", adBoolean, adParamOutput))
You can also get rid of the isAllowed variable since it is no longer needed.
source share