Código VB6:

Public Function DameValorCampo(ByVal SQL As String, Optional ByVal Propiedad As String) As Variant

Código C#:

public Valor DameValorCampo(string sql, string propiedad = null)


Sirve para consultar el valor de un campo de un solo registro.
Retorna el valor del campo consultado.

Si la consulta retorna más de un resultado, se pintará el primer registro que encuentre el recordset.
Si no se especifica la propiedad, se retorna el valor correspondiente al primer campo de la consulta.

En caso de pasarle la sql como variable, si la variable es de tipo Variant, dará un error. Deberá hacer la conversión de la variable a String. (ver ejemplo)


Ejemplo:


Código VB6:

MsgBox gcn.DameValorCampo ("Select Idempleado, Nombre from empleados_datos where idempleado=0", "Nombre")


--Retorna el nombre del empleado 0


Código C#:

AhoraCore.VBA.Interaction.MsgBox(gCn.DameValorCampo("SELECT IdEmpleado FROM Empleados_Datos WHERE IdEmpleado=0","Nombre"));

--


Código VB6:

MsgBox gcn.DameValorCampo ("Select Idempleado from empleados_datos order by idempleado")

--De n empleados, retorna el Id más bajo.



Código C#:

AhoraCore.VBA.Interaction.MsgBox(gCn.DameValorCampo("SELECT IdEmpleado FROM Empleados_Datos ORDER BY IdEmpleado"));


--


Código VB6:

En este ejemplo, se pasa una variable con la cadena SQL. Para que funcione debemos hacer la conversión a string.

lSQL="Select Nombre from empleados_datos where idempleado=" & gcn.IdEmpleado
MsgBox gcn.DameValorCampo (CSTR(lsql))


Código C#:

Para pasar una variable a la cadena SQL se escribe dentro de llaves ( { } ).

string idEmpleado = (gForm.Controls["IdEmpleado"] as TextoUsuario).Text;
AhoraCore.VBA.Interaction.MsgBox(gCn.DameValorCampo($"SELECT Nombre FROM Empleados_Datos WHERE IdEmpleado={idEmpleado}"));


Otra opción:

string idEmpleado = (gForm.Controls["IdEmpleado"] as TextoUsuario).Text;
sql = $"SELECT Nombre FROM Empleados_Datos WHERE IdEmpleado={idEmpleado}";
AhoraCore.VBA.Interaction.MsgBox(gCn.DameValorCampo(sql));