Intento hacer es realizar una consulta mediante ADO y código SQL a una base de datos en Access

Hola Experto, tengo un problema, espero puedas ayudarme, lo que intento hacer es realizar una consulta mediante ADO y código SQL a una base de datos en access, quiero obtener el valor máximo de un cierto campo(ejem el máximo pago del campo PAGO), y también quiero obtener todos los valores distintos de uno (ejemplo obtener todos los pagos que no fueron hechos el día 12/12/05). Gracias por tu tiempo, estaré esperando tu respuesta.

3 respuestas

Respuesta
1
Bien javi,
Aquí se te presenta un problema. Lo que quieres hacer creo que no lo puedes tener en una sola consulta ya que cuando obtienes el valor máximo de un campo solo obtienes un valor de respuesta y el obtener valores distintos puede devolver más de uno.
Entonces vamos por partes. La consulta del valor máximo es:
SELECT Max(Pago) AS MaximoValorDePago FROM NombreTabla;
SELECT * FROM NombreTabla WHERE Not Fecha=#12/12/05#;
Estas consultas tendrás que colocarlas en Commands.
Hola experto, gracias por tu respuesta, pero no se como sacar ese valor en una variable y trabajarlo, por ejemplo
"SELECT Max(Pago) AS MaximoValorDePago FROM NombreTabla"
quiero que este almacenado en una variable VMAX. Estoy utilizando ADO para la conexion espero puedas indicarme donde y como colocar el Command q me indicas. gracias nuevamente por tu tiempo.
Bien. Para trabajar con ADO hay dos formas. Una es con el asistente DataEnvironment y otra es por código. En cualquiera de las dos formas debes realizar unos pasos básicos para ponerlo a funcionar por así decirlo.
Los pasos son:
1.- Crear una conexión a una base de datos.
2.- Crear uno o varios comandos.
3.- Asignarle valor a dichos comandos.
El select que te escribí en la respuesta anterior corresponde al paso 3.
Para colocar el valor de respuesta en una variable debes, crear un objeto recordset. Al objeto recordset asignarle la ejecución del comando que contiene la consulta que quieres realizar y el valor del campo lo obtienes del recordset.
Ejem:
Dim objRS as ADODB.Recordset
set objRS=conexion.rsComandoConsulta
objRS.Open
variable=objrs.Fields(0).value
objRS.Close
set objRS=nothing
Nota: Es muy importante cerrar y limpiar los objetos una vez haz finalizado de utilizarles.
Respuesta
1
Siento haber tardado tanto en contestarte, pero el curro ya sabes... Bueno si lo que quieres es conseguir el máximo valor del campo Pago, tienes que poner la siguiente sentencia en el CommandText de tu objeto Command "Select max(Pago) from tabla", para obtener todos los pagos que no fueron hechos el día 12\12\05 debes porner la siguiente sentencia de SQL "Select Pago from tabla where fecha <> #12\12\05#".
Respuesta
1
'Para el máximo
"SELECT Max(Pago) FROM Pagos"
'Para las fechas
"SELECT DISTINCT(Fecha) FROM Pagos WHERE Fecha<>#12/12/05#"
la fecha con formato MM/DD/YY
Hola experto, gracias por tu respuesta, pero lo que en realidad quiero es como sacar ese valor en una variable y trabajarlo, por ejemplo
"Select max(PAGOS) from PAGOS"
Quiero que este almacenado en una variable VMAX. Estoy utilizando ADO para la conexión espero puedas indicarme donde colocar lo que me indicas. Gracias nuevamente.
Para hacer algo por el estilo yo tengo una función:
function SQLCampo (sSQL as String, sCampo as string) as string
Dim tAux As ADODB.Recordset
Set tAux = New ADODB.Recordset
tAux.CursorType = adOpenDynamic
tAux.LockType = adLockReadOnly
tAux.ActiveConnection = cn
tAux.Source = sSQL
tAux.Open
If tAux.BOF And tAux.EOF Then
SQLCampo = ""
Else
SQLCampo = tAux(sCampo) & ""
End If
tAux.Close
end function
En tu caso la usarías así:
Debe existir una variable "cn" de tipo ADODB. Connection
VMAX=SQLCampo ("SELECT MAX(Pagos) Maximo FROM Pagos","Maximo")
Puede que te sirva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas