Código vb:
Ver originalTry
Dim sentencia As String
Dim rsverificar As ADODB.Recordset
rsverificar = New ADODB.Recordset()
sentencia = "Select " & NomCampo ' arma en el string sentencia la palabra Select + nombre del campo que parece venir de afuera
sentencia = sentencia & " FROM " & Tblreturn 'luego agrega el estatuto from + nombre de la tabla que parece venir de afuera de la funcion
If Not filtro = Nothing Then 'verifica que la variable filtro no este vacia
sentencia = sentencia & " Where " & filtro ' añade el were + la condicion que tambien viene de afuera
End If
If conexionConsulta = "SQL" Then 'valida el tipo de consulta
rsverificar.Open(sentencia, cnSQL, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockReadOnly, 1) 'abre record set y ejecuta la consulta
conexionConsulta = "Access"
Else
rsverificar.Open(sentencia, cnAccess, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockReadOnly, 1) 'abre recordset y ejecuta la consulta
End If
If rsverificar.EOF <> True Then 'mientras no sea el fin del recordset = true
RetornaCampo = rsverificar.Fields(0).Value 'retorna el valor del campo
If IsDBNull(rsverificar.Fields(0).Value) = True Then 'si el capo esta vacio
RetornaCampo = 0 'retorna un 0
End If
Else
RetornaCampo = 0 'si recordset no tiene registros retorna 0
End If
rsverificar.Close() 'cierra el recordset
Catch ex As Exception
MsgBox("Ocurrio un error interno en la aplicación " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Atención")
Return 0
End Try
Parece que tu código lo que hace es armar una instrucción SQL en base a varios parámetros y determina si es una consulta SQL o de Access, luego la ejecuta cargándolo en un Recordset y extrae los datos siempre que el RecordSet tenga algo, si algun campo esta vacio o no tiene dato retorna un o.
Sin embargo hay unas variables que parecen venir de afuera, pasados por referencia o declarados en alguna sección de código que hace falta.
espero te ayude de algo.
Salu2.