Extraño proble al hacer un rs.open
Hola a todos-as
tengo el siguiente problema realizo la comprobacion de una serie de sentencias que consisten en abrir un recordset de la siguiente manera :
Public Function Abrir_rs(rs As Recordset, Datos As String, Localizacion As Integer, num_sql As Integer) As Integer
Set rs = New Recordset
On Error GoTo si_error
rs.LockType = adLockOptimistic
rs.CursorLocation = Localizacion
rs.CursorType = adOpenDynamic
rs.Source = Datos
rs.ActiveConnection = Conexion
rs.Open
si_error:
acciones
End sub
donde datos es la sql
el problema es que me entra por el si_error cuando el record esta abierto con los datos correctos y en principio parece que todo lo izo bien ,lo que no debe estar bien debe ser la forma de capturar el error ,agradeceria cualquier sugerencia al respecto.
muchas gracias por su atencion
saludos
tengo el siguiente problema realizo la comprobacion de una serie de sentencias que consisten en abrir un recordset de la siguiente manera :
Public Function Abrir_rs(rs As Recordset, Datos As String, Localizacion As Integer, num_sql As Integer) As Integer
Set rs = New Recordset
On Error GoTo si_error
rs.LockType = adLockOptimistic
rs.CursorLocation = Localizacion
rs.CursorType = adOpenDynamic
rs.Source = Datos
rs.ActiveConnection = Conexion
rs.Open
si_error:
acciones
End sub
donde datos es la sql
el problema es que me entra por el si_error cuando el record esta abierto con los datos correctos y en principio parece que todo lo izo bien ,lo que no debe estar bien debe ser la forma de capturar el error ,agradeceria cualquier sugerencia al respecto.
muchas gracias por su atencion
saludos
solo una pregunta sonde indicas que conexion as new.odbc
Andres
Andres
hola andres, la conexion la abro en otra funcion aparte creando un objeto tipo conection y pasandole la ruta de la base de datos ,esta parte nunca me dio ningun problema lo hago de la siguiente manera:
Dim Conexion As New Connection
Public Sub Abrir_Conexion(BaseDatos As String)
Conexion.Provider = "Microsoft.Jet.OLEDB.4.0"
Conexion.ConnectionString = "Data Source=" & BaseDatos
On Error Resume Next
Conexion.Open
If Err Then
MsgBox ("No puedo abrir la base de datos. Contacte con el proveedor")
End
End If
On Error GoTo 0
end sub
muchas gracias por tu interes
un saludo
Dim Conexion As New Connection
Public Sub Abrir_Conexion(BaseDatos As String)
Conexion.Provider = "Microsoft.Jet.OLEDB.4.0"
Conexion.ConnectionString = "Data Source=" & BaseDatos
On Error Resume Next
Conexion.Open
If Err Then
MsgBox ("No puedo abrir la base de datos. Contacte con el proveedor")
End
End If
On Error GoTo 0
end sub
muchas gracias por tu interes
un saludo
el error es evidente, el codigo se ejecuta secuencialmente y despues de tu rs.open
viene la etiqueta si_error: y luego las acciones a tomar
que se ejecutaran con error o sin el.
puedes evitarlo usando un \\'goto salida\\' .
.
.
rs.Source = Datos
rs.ActiveConnection = Conexion
rs.Open
goto salida
si_error:
acciones
salida:
End sub
saludos
viene la etiqueta si_error: y luego las acciones a tomar
que se ejecutaran con error o sin el.
puedes evitarlo usando un \\'goto salida\\' .
.
.
rs.Source = Datos
rs.ActiveConnection = Conexion
rs.Open
goto salida
si_error:
acciones
salida:
End sub
saludos
