Public Function openRs(ByVal strSQL As String) As Recordset
Dim rsAux As New Recordset
Dim errLoop As Error
On Error GoTo Err_Execute
If GetStateRs(cnConexion.State) = "Closed" Then
If conexionBD = False Then
MsgBox "Ha ocurrido un error en la conexión con la base de datos" + vbCr _
+ "Este error finalizará la ejecución de la aplicación, si el problema persiste avise al Administrador", vbCritical, "Error Grave"
End
End If
End If
With rsAux
.Source = strSQL
.ActiveConnection = cnConexion
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open strSQL
End With
If GetStateRs(rsAux.State) = "Open" Then
Set openRs = rsAux
End If
On Error GoTo 0
Exit Function
Err_Execute:
' Notifica al usuario cualquier error resultante tras
' ejecutar la consulta.
If cnConexion.Errors.Count > 0 Then
For Each errLoop In cnConexion.Errors
MsgBox "Número de error: " & errLoop.Number & vbCr & _
errLoop.Description, vbCritical
Next errLoop
End If
Set openRs = Nothing
End Function
Public Function execSQL(ByVal strSQL As String) As Integer
Dim cmdRs As New Command
Dim errLoop As Error
If GetStateRs(cnConexion.State) = "Closed" Then
If conexionBD = False Then
MsgBox "Ha ocurrido un error en la conexión con la base de datos" + vbCr _
+ "Este error finalizará la ejecución de la aplicación, si el problema persiste avise al Administrador", vbCritical, "Error Grave"
End
End If
End If
' Borra los errores ajenos de la colección Errors.
cnConexion.Errors.Clear
With cmdRs
.ActiveConnection = cnConexion
.CommandText = strSQL
.CommandType = adCmdText
End With
On Error GoTo Err_Execute
cmdRs.Execute execSQL
On Error GoTo 0
Exit Function
Err_Execute:
' Notifica al usuario cualquier error resultante tras
' ejecutar la consulta.
If cnConexion.Errors.Count > 0 Then
For Each errLoop In cnConexion.Errors
MsgBox "Error número: " & errLoop.Number & vbCr & _
errLoop.Description, vbCritical
Next errLoop
End If
Resume Next
End Function