editing access.php

I'm making a custom input for the access levels for the blog tool - the idea is to take a variable '$access_id' which contains the users default privacy setting for their blog.  (They set this in a blog settings page I've made which works fine) I've echoed the variable to check that it's correct but I'm having a problem - I can set the box to always have the default access selected, but that would mean when a user edits a blog entry it would select the default and not the one relevant to that entry. 

In input/access.php the line that checks for existing level and if not sets default seems to be...

    if (!array_key_exists('value', $vars) || $vars['value'] == ACCESS_DEFAULT)
        $vars['value'] = get_default_access();

I tried to change this to...

    if (!array_key_exists('value', $vars) || $vars['value'] == ACCESS_DEFAULT)
        $vars['value'] = $access_id;

But it didn't work.

I also tried checking if there was an existing one and if not creating one like this...

    if (isset($vars['value'])) {} else { $vars['value'] = $access_id; }

But that failed too, does anyone know where I'm going wrong?