puede establecer el origen del control de su campo para un nombre de función. Esa función puede ejecutar fácilmente su SQL y/o pasar una variable. Aquí está mi placa de caldera simple para una función para ejecutar una declaración de SQL en un conjunto de registros y devolver el primer valor. En mi mundo, por lo general, incluyo una cláusula Where muy específica, pero ciertamente podría hacer que alguna de estas funciones sea más robusta para sus necesidades.
=fnName(sVariable, iVariable)
Public Function fnName(_
sVariable as String, _
iVariable as Integer _
) As String
On Error GoTo Err_fnName
Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sSQL As String
sSQL = ""
Set con = Access.CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open sSQL, con, adOpenDynamic, adLockOptimistic
If rst.BOF And rst.EOF Then
'No records found
'Do something!
Else
'Found a value, return it!
fnName = rst(0)
End If
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
Exit_fnName:
Exit Function
Err_fnName:
Select Case Err.Number
Case Else
Call ErrorLog(Err.Number, Err.Description, "fnName", "", Erl)
GoTo Exit_fnName
End Select
End Function
¿Hay alguna razón para que los datos no se incluyan en el origen de la fuente subyacente del formulario? –