• Lunes 18 de Noviembre de 2024, 05:35

Autor Tema:  Consulta Sobre La Apertura De Un Recorset  (Leído 1395 veces)

Fenix8232

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Consulta Sobre La Apertura De Un Recorset
« en: Lunes 5 de Junio de 2006, 21:53 »
0
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
  1. Set cnn = New Connection
  2.    
  3.     cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\RentaCar.mdb;"
  4.     cnn.Open
  5.    
  6.     Set rst = cnn.Execute("SELECT * FROM tblVehiculoExtras WHERE Extras='" & txtNombre.Text & "'")
  7.  
  8.  

Quería preguntar si eso sería correcto así.

Muchas gracias y un saludo.

Jose Arriagada

  • Miembro MUY activo
  • ***
  • Mensajes: 373
    • Ver Perfil
Re: Consulta Sobre La Apertura De Un Recorset
« Respuesta #1 en: Lunes 5 de Junio de 2006, 22:24 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Consulta Sobre La Apertura De Un Recorset
« Respuesta #2 en: Martes 6 de Junio de 2006, 12:04 »
0
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
  1. Private Sub cmdBorrar_Click()
  2.     If vbYes = MsgBox(vbTab & "¿ Borrar el extra seleccionado ?" & vbCr & vbCr & _
  3.     "Si acepta, si es necesario se procederá a borrar el extra " & vbCr & _
  4.     "seleccionado en todos los vehículos en los que se encuentre." & vbCr & vbCr & _
  5.     "¿¿¿ Realmente desea borrar el extra seleccionado ???", vbExclamation + vbYesNo, "ATENCIÓN") Then
  6.        
  7.         If Adodc1.Recordset.BOF And Adodc1.Recordset.EOF Then
  8.             MsgBox "No es posible borrar el registro.", vbCritical, "ERROR"
  9.         Else
  10.             Set cnn = New ADODB.Connection
  11.             Set rst = New ADODB.Recordset
  12.                        
  13.             Dim SentenciaSQL As String
  14.                      
  15.             cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\RentaCar.mdb;"
  16.             cnn.Open
  17.        
  18.             SentenciaSQL = "SELECT * FROM tblVehiculoExtras WHERE Extras='" & txtNombre.Text & "'"
  19.            
  20.             rst.Open SentenciaSQL, cnn, adOpenDynamic, adLockOptimistic
  21.            
  22.            
  23.             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.
  24.                 Adodc1.Recordset.Delete 'Con esto borramos la categoría seleccionada.
  25.      
  26.                 Adodc1.Recordset.MoveFirst 'Con esto nos establecemos en el primer registro de la tabla.
  27.            
  28.                 'Mensaje advirtiendo de que el extra ha sido borrado.
  29.                 MsgBox "Extra borrado correctamente.", vbInformation, "Extra borrada"
  30.                
  31.                
  32.             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.
  33.                 rst.MoveFirst 'Nos movemos al primer registro para empezar a buscar y a borrar.
  34.                
  35.                 Do While Not rst.EOF  'Repite hasta que no sea el final de la tabla.
  36.                     rst.Delete
  37.                     rst.MoveNext
  38.                 Loop
  39.                
  40.                 cnn.Close
  41.                
  42.                
  43.                 ' Refresh es necesario para que se cargue la tabla
  44.                 Adodc1.Refresh
  45.                
  46. [B] ==>        Adodc1.Recordset.Delete 'Con esto borramos la categoría seleccionada.[/B]
  47. [I]En esta línea de arriba es cuando me salta el error.[/I]
  48.                 Adodc1.Recordset.MoveFirst 'Con esto nos establecemos en el primer registro de la tabla.
  49.                            
  50.                  'Mensaje advirtiendo de que el extra ha sido borrado.
  51.                 MsgBox "Extra borrado correctamente.", vbInformation, "Extra borrada"
  52.             End If
  53.         End If
  54.     End If
  55. End Sub
  56.  
  57.  

Muchas gracias ya de antemano por siquiera pararos a leer mi problema.

Fenix8232

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Consulta Sobre La Apertura De Un Recorset
« Respuesta #3 en: Martes 6 de Junio de 2006, 19:39 »
0
Bueno, todo eso de ahí arriba, ya lo conseguí hacer. Así que como si no hubiera comentado nada :D.