diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py
index 2058f291..8a781175 100644
--- a/gluon/sqlhtml.py
+++ b/gluon/sqlhtml.py
@@ -2625,7 +2625,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:
try: