Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cerrar Recorset para hacer mas consulta

Estas en el tema de Cerrar Recorset para hacer mas consulta en el foro de Visual Basic clásico en Foros del Web. Hola: Soy nuevo en esto de visual basic, y solo buscando he podido hacer un codigo para hacer abrir un BD en Access con visual ...
  #1 (permalink)  
Antiguo 22/09/2009, 23:35
 
Fecha de Ingreso: septiembre-2009
Mensajes: 1
Antigüedad: 14 años, 7 meses
Puntos: 0
Cerrar Recorset para hacer mas consulta

Hola:

Soy nuevo en esto de visual basic, y solo buscando he podido hacer un codigo para hacer abrir un BD en Access con visual basic, y hacer una consulta. Hasta ahi todo bien, pero el programa solo me permite hacer una consulta, ya que luego me aparece un mensaje que dice "la operacion no esta permitida si el objeto esta abierto", como puedo cerrar el recordset, y poder hacer consultas sin tener que cerrar el formulario.

este es el codigo de mi programa

Saludos


Option Explicit
Dim Cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim SQL As String
Dim A As String
Dim B As Date


Private Sub Command1_Click()
inicio:
B = DTPicker1.Value
A = Text1.Text
SQL = "Select * from Matriculas where Patente ='" + A + "' and Fecha = #" & Format(B, "mm/dd/yyyy") & "#"
Rs.Open SQL, Cnn, adOpenDynamic, adLockOptimistic
DataGrid1.ClearFields
Set DataGrid1.DataSource = Rs
DataGrid1.Refresh
DataGrid1.Visible = True
GoTo inicio
End Sub


Private Sub Form_Load()
DataGrid1.Visible = False
DTPicker1.Value = Date
B = DTPicker1.Value
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Barreras\BD_Patentes.mdb;Persist Security Info=False;"
Cnn.CursorLocation = adUseClient

End Sub
  #2 (permalink)  
Antiguo 23/09/2009, 09:20
 
Fecha de Ingreso: junio-2008
Ubicación: Punta Alta, Argentina
Mensajes: 82
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Cerrar Recorset para hacer mas consulta

podes hacer 2 cosas.
La primera es bien simple, rs.close
o bien podes abrir un recordset nuevo, este te sirve si usas tablas u base de datos distintos.
  #3 (permalink)  
Antiguo 23/09/2009, 11:50
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Respuesta: Cerrar Recorset para hacer mas consulta

Para que la etiqueta "inicio"? Para que el Goto inicion?

Borrralossss

Abraham
  #4 (permalink)  
Antiguo 23/09/2009, 12:03
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Cerrar Recorset para hacer mas consulta

Hola, si esas etiquetas no me gustan como estan.
El tema es que si usas rs.close despues de actualizar el datagrid, los datos de este (el datagrid) se borran
Yo probe asi y anda (no es lo mas prolijo desde el punto de vista de programacion), pero bueno........ anda

Option Explicit
Dim Cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim SQL As String
Dim A As String
Dim B As Date

Private Sub Command1_Click()
'Chequeamos si el recordset esta abierto y lo cerramos para evitar el error
If Rs.State = 1 Then
Rs.Close
End If

B = DTPicker1.Value
A = Text1.Text
SQL = "Select * from Matriculas where Patente ='" + A + "' and Fecha = #" & Format(B, "mm/dd/yyyy") & "#"
DataGrid1.ClearFields
Set DataGrid1.DataSource = Rs
DataGrid1.Refresh
DataGrid1.Visible = True

End Sub

Private Sub Form_Load()
DataGrid1.Visible = False
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Barreras\BD_Patentes.mdb;Persist Security Info=False;"Persist Security Info=False;"
Cnn.CursorLocation = adUseClient

End Sub

Espero haberte ayudado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:32.