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
Ir a la versión completa