¿Cómo realizar una consulta mediante SQL a una base de datos hecha en Access?

Hola experto, agradezco tu tiempo y respuesta, el problema es que no se como realizar una consulta mediante SQL, a una base de datos echa en ACCESS, lo que quiero obtener es el valor máximo de un cierto campo(PAGOS), y también una consulta que me devuelva un recordset que contenga todos los registros distintos de un valor dado (Todos los apellidos diferentes de "MEZA ALVA"). Gracias nuevamente.

1 Respuesta

Respuesta
1
A ver... Si no he entendido mal, necesitas dos consultas:
La primera que te seleccione el valor máximo del campo Pagos...
Select max(PAGOS) from TABLAPAGOS
La segunda consulta que te saque las descripciones distintas de una dada...
Select APELLIDOS from TABLAAPELLIDOS where APELLIDOS <> "MEZA ALVA"
GROUP BY APELLIDOS
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 TABLAPAGOS"
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.
El método que más me gusta para una conexión es a través de ADO, y me genero una clase para controlar la conexión.
La clase es de este estilo :
Option Explicit
Private Conexion As ADODB.Connection
Dim innerRS As ADODB.Recordset
Private Sub Class_Initialize()
On Error GoTo FalloConexion
Set Conexion = New ADODB.Connection
Conexion.ConnectionString = strMontarCad(LOGIN, PASS, "", SERVICIO)
Conexion.Open
Exit Sub
FalloConexion:
MsgBox Err.Description
End Sub
Private Function strMontarCad(ByVal PestrUsuario As String, ByVal PestrClave As String, ByVal PestrServidor As String, ByVal PestrBD As String) As String
Dim mCadenaConex As String
' Esta era la cadena para conectar a Oracle
'mCadenaConex = "Provider=MSDAORA.1;Password=" & PestrClave & ";User ID=" & PestrUsuario & ";Data Source=" & PestrBD & ";Persist Security Info=True"
' Otra cadena para conectar a Oracle, pero por OLEDB
'mCadenaConex = "Provider=OraOLEDB.Oracle.1;Password=" & PestrClave & ";User ID=" & PestrUsuario & ";Data Source= " & PestrBD & ";Persist Security Info=true"
' La que te interesa, para conectar con ACCESS
mCadenaConex = "Provider =Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BaseDeDatos\Primarios.mdb;"
strMontarCad = mCadenaConex
End Function
Public Function ExecuteQuery(SQL As String) As ADODB.Recordset
Set innerRS = New ADODB.Recordset
innerRS.CacheSize = 30
InnerRS. Open SQL, Conexion. ConnectionString, adOpenForwardOnly, adLockBatchOptimistic, adAsyncFetch
Set ExecuteQuery = innerRS
End Function
Public Sub ExecuteSQL(SQL As String)
Conexion. BeginTrans
Conexion.Execute SQL
Conexion.CommitTrans
DoEvents
End Sub
Private Sub Class_Terminate()
If (Conexion.State <> adStateClosed) Then
Conexion.Close
End If
End Sub
Una vez creada la clase, digamos que la llamamos ClsConexion. Se usaria de este modo :
Te declaras un objeto de la clase :
Public Conexion As ClsConexion
Set Conexion = New ClsConexion
Una vez declarado el objeto, para generar una consulta solo debes hacer lo siguiente :
Dim SQL As String
Dim rsPrivado As Recordset
SQL = "Select max(PAGOS) from TABLAPAGOS "
Set rsPrivado = Conexion.ExecuteQuery(SQL)
' A partir de esto, rsPrivado contiene los datos de la consulta. De este modo,
' rsPrivado(0).value sera el primer campo del valor resultado de la SQL Y en este caso el único...
Para el caso 2 :
SQL = "Select APELLIDOS from TABLAAPELLIDOS where APELLIDOS <> 'MEZA ALVA'
GROUP BY APELLIDOS"
Set rsPrivado = Conexion.ExecuteQuery(SQL)
En este caso, para recorrerte los campos de la consulta, tendrás que hacerlo de este modo :
' Desde el primer elemento, al último...
While Not rsPrivado.EOF
msgBox( rsPrivado(0))
' Escribir rs(Privado(0) es lo mismo que poner rsPrivado ("APELLIDOS")
' Bien, ahora pasariamos al siguiente elemento...
rsPrivado.MoveNext
' Y cerramos el bucle...
Wend
Espero haberlo dejado claro...
Ah... y no se te olvide en referencias poner las Microsoft Active Data Objects 2.5 Library. Vamos, las librarías de la ADO...
Un saludo y espero haberte sido claro y de utilidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas