diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py
index d00db8be..f1a73298 100644
--- a/gluon/sqlhtml.py
+++ b/gluon/sqlhtml.py
@@ -2681,7 +2681,10 @@ class SQLFORM(FORM):
continue
if field.type == 'blob':
continue
- value = row[str(field)]
+ if isinstance(field, Field.Virtual) and field.tablename in row:
+ value = dbset.db[field.tablename][row[field.tablename][field_id]][field.name]
+ else:
+ value = row[str(field)]
maxlength = maxtextlengths.get(str(field), maxtextlength)
if field.represent:
if field.type.startswith('reference'):