Programación General > Visual Basic 6.0 e inferiores

 Consulta Sobre La Apertura De Un Recorset

(1/1)

Fenix8232:
Hola gente que tal.

Es mi primer mensaje y quería saludarles a todos y agredecerle de antemano la posible ayuda que intenten ofrecerme.

Mi consulta es la siguiente.

Lo que yo quiero hacer es abrir un recorset con una consulta SQL, pero en esa consulta SQL necesito meter un parametro de busqueda que lo tengo en un textbox. Mi pregunta es si se puede poner esa intrucción SQL con el parámetro que necesito pasarle.

El código sería algo así:

--- Código: Text ---Set cnn = New Connection        cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\RentaCar.mdb;"    cnn.Open        Set rst = cnn.Execute("SELECT * FROM tblVehiculoExtras WHERE Extras='" & txtNombre.Text & "'")  
Quería preguntar si eso sería correcto así.

Muchas gracias y un saludo.

Jose Arriagada:
Debiera funcionar....

Si no, usa una variable de paso...


Set cnn = New Connection
cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\RentaCar.mdb;"
cnn.Open

SentenciaSQL="SELECT * FROM tblVehiculoExtras WHERE Extras='" & txtNombre.Text & "'"
   
Set rst = cnn.Execute(SentenciaSQL)

El efecto es el mismo....

Fenix8232:
Muchas gracias, Jose Arriagada. Tanto una cosa como otra me funcionaron, pero me gusta más tu forma, queda más clara.

Pero ahora tengo otro problemilla. Tengo un formulario con un ADODC que es con el que controlo todos los campos del formulario y de la tabla. Y luego tengo el Recorset por el que pedí anoche ayuda, el rst.

En el adodc1 tengo abierta la tabla extras (tblExtras).
En el rst tengo abierta la tabla VehiculosExtras(tblVehiculoExtras).

Bien todo esto es para poder borrar. Ya que para poder borrar un extra de la tblExtras tengo que mirar si existe algun extra vinculado con algun vehículo en la tblVehiculoExtras. Hasta aqui todo bien y controlado, consigo borrar los registros de la tblVehiculoExtras, pero luego al querer borrarlo de la tblExtras me dice que no se puede borrar ya que el registro se encuentra vinculado a otra tabla(supuestamente a tblVehiculoExtra). Pero en ese momento que se me para la aplicación, voy y miro en la BD y en esa tabla ya no existe el ningun registro con el Extra que quiero borrar.

He intentado que despues de borrar en la tblVehiculoExtra hacer un adodc1.Refresh y despues el adodc1.Delete pero me sigue diciendo lo mismo.

¿Alguien me podría guiar en como se podría solucionar esto?, pq llevo horas estancado en este punto y no consigo salir de aquí.

Aquí os coloco el código que tengo escrito hasta ahora:


--- Código: Text ---Private Sub cmdBorrar_Click()    If vbYes = MsgBox(vbTab & "¿ Borrar el extra seleccionado ?" & vbCr & vbCr & _    "Si acepta, si es necesario se procederá a borrar el extra " & vbCr & _    "seleccionado en todos los vehículos en los que se encuentre." & vbCr & vbCr & _    "¿¿¿ Realmente desea borrar el extra seleccionado ???", vbExclamation + vbYesNo, "ATENCIÓN") Then                If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then            MsgBox "No es posible borrar el registro.", vbCritical, "ERROR"        Else            Set cnn = New ADODB.Connection            Set rst = New ADODB.Recordset                                    Dim SentenciaSQL As String                                  cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\RentaCar.mdb;"            cnn.Open                    SentenciaSQL = "SELECT * FROM tblVehiculoExtras WHERE Extras='" & txtNombre.Text & "'"                        rst.Open SentenciaSQL, cnn, adOpenDynamic, adLockOptimistic                                    If rst.EOF And rst.BOF Then 'Miramos si en la otra tabla hay algun registro vinculado. Si no hay nada, borramos el extra directamente.                Adodc1.Recordset.Delete 'Con esto borramos la categoría seleccionada.                     Adodc1.Recordset.MoveFirst 'Con esto nos establecemos en el primer registro de la tabla.                            'Mensaje advirtiendo de que el extra ha sido borrado.                MsgBox "Extra borrado correctamente.", vbInformation, "Extra borrada"                                            Else 'Si entra por aquí, es que hay algun registro vinculado y necesitamos borrarlo primero de la tabla VehículoExtra antes de borrarlo en la tblExtras.                rst.MoveFirst 'Nos movemos al primer registro para empezar a buscar y a borrar.                                Do While Not rst.EOF  'Repite hasta que no sea el final de la tabla.                    rst.Delete                    rst.MoveNext                Loop                                cnn.Close                                                ' Refresh es necesario para que se cargue la tabla                Adodc1.Refresh                [B] ==>        Adodc1.Recordset.Delete 'Con esto borramos la categoría seleccionada.[/B][I]En esta línea de arriba es cuando me salta el error.[/I]                Adodc1.Recordset.MoveFirst 'Con esto nos establecemos en el primer registro de la tabla.                                             'Mensaje advirtiendo de que el extra ha sido borrado.                MsgBox "Extra borrado correctamente.", vbInformation, "Extra borrada"            End If        End If    End IfEnd Sub  
Muchas gracias ya de antemano por siquiera pararos a leer mi problema.

Fenix8232:
Bueno, todo eso de ahí arriba, ya lo conseguí hacer. Así que como si no hubiera comentado nada :D.

Navegación

[0] Índice de Mensajes

Ir a la versión completa