more clarification please? you can do something like the following [just the logic]
db.define_table('my_table', Field('x',.....), Field('y',....))
in your controller
query = (db.y.id>0)
my_list = [row.name for row in db(query).select()]
db.my_table.y.requires=IS_IN_LIST(my_list)
if var not in my_list: # var is what you're searching for
db.my_table.x.readable=Falseng
db.my_table.x.writable=False
def index():
form = SQLFORM(db.my_table)
......

