¿Cómo hacer una consulta poniendo un texbox y un commandboton?

Buenas noches
Tengo una base de datos access, quiero hacer una consulta poniendo un texbox y un commandboton para que el usuario tlecle para consultar pero sin usar el control data, el resultado de la consulta lo quisiera reflejar en un control flexgrid como seria el código me podrías dar un ejemplo por favor me urge para mañana tengo que presentar un avance del programa por favor ayudame soy nuevo en esto
2

2 respuestas

Respuesta
1
Create una conexion ADO de este estilo :
Me genero una clase para controlar la conexión y añado al menu de referencias las Microsoft Ado 2.5 Library.
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 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
Si obteniendo los campos de ese modo y almacenas un array de IDs por registro, solo tienes que hacer los updates y los deletes por SQL
Con el objeto conexión y el método executeSQL.
Ahora si, antes de hacer la actualización o borrado del campo, puedes validar que este existe. Con la sentencia Select.
Si de todos modos, mi explicación se aleja mucho de tu código, ponme un ejemplo de como los cargas y de la sentencia que ejecutas cuando falla. De este modo, puedo validarte el motivo por el que no te realiza la operación correctamente.
El código es perfecto pero no se podrá hacer por medio de dao y no por ado
No suelo usar las DAO para nada. Me parecen bastante chapuza. Pero si son sencillas. Guille en su página de curso de VB tiene muy clara la explicación.
Te la remito porque se explica mejor que yo :
http://guille.costasol.net/cursos_vb/basico/basico40.htm
Respuesta
1
Tranquilo,
tenes un textbox, un command
El textbox dice "ingrese código de empleado pj" y el command mostrar
ahora quieres que la consulta la muestre en un flexgrid, ¿hasta ahí no hay problema
vos usas data y quieres que el data no se muestre o no usar data?
Si la conexión es interna mandame tu email que te mando un programita
con ado con conexión interna. Ok.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas