Logo_Access_global_380x114Favicon_Access_global_180x180Logo_Access_global_380x114Logo_Access_global_380x114
  • Home
  • University
    • Destellos formativos
  • Labs
  • TV
  • Secciones
    • El mundo de Access
    • Explorando VBA
      • Artículos sobre VBA
      • Un trocito de código
    • Entrevistas
      • Profesionales de Access
    • El rincón de Excel
    • Bases de datos
      • MS SQL
      • MySQL
      • postgreSQL
      • SQLite
    • Clases magistrales
    • Utilidades hechas con Access
  • Access en el mundo
  • ¿Quiénes somos?
  • Cómo colaborar
  • Eventos
✕
            No hay resultados Mostrar todos los resultados
            vba: Dirty avanzado
            05/12/2022
            Access: utiliza el zoom
            09/12/2022
            Mostrar todos

            vba: Transacciones

            Publicado por Luis Viadel
            Categorías
            • Destellos formativos
            Etiquetas
            • BeginTrans
            • CommitTrans
            • RollbackTrans
            Public Function AsegurarProceso() As Boolean
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/vba-transacciones
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : AsegurarProceso
            ' Autor original    : Luis Viadel
            ' Creado            : marzo 2010
            ' Adaptado          : diciembre 2022
            ' Propósito         : asegurar cualquier proceso mediante el uso de transacciones
            ' Retorno           : verdadero / falso según finalice el proceso satisfactoriamente o no
            ' Argumento/s       : La sintaxis de la función consta del siguiente argumento:
            '                     Parte           Modo             Descripción
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            '                     En este caso no hemos utilizado argumentos. Podríamos crear una función a la que le pasásemos el proceso concreto
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Referencia        : https://learn.microsoft.com/es-es/office/vba/access/concepts/data-access-objects/use-transactions-in-a-dao-recordset
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Test:             : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test. Copiar el bloque siguiente al
            '                     portapapeles y pega en el editor de VBA. Descomentar la línea que nos interese y pulsar F5 para ver su funcionamiento.
            '
            ' Sub CheckInternet_test()
            '
            '   If AsegurarProceso then
            '       Realizamos operaciones
            '   Else
            '       Mandamos un mensaje de error
            '   End If
            '
            ' End Sub
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            Dim Connect As ADODB.Connection
            Dim rstTable As ADODB.Recordset
            Dim strConnect As String
                
                On Error GoTo LinErr
                
                Set Connect = New ADODB.Connection
                
                    Connect.Mode = adModeShareExclusive
                    Connect.IsolationLevel = adXactIsolated
                    
                    Connect.Open "MyDSN", "MyDB", "MyPassword"
            
                    Set rstTable = New ADODB.Recordset
                        rstTable.Open "MyTable", Connect, adOpenDynamic, adLockPessimistic, adCmdTable
                
            'Bloque de transacción. Aquí realizamos nuestras operaciones
                    Connect.BeginTrans
               
            'Operaciones
            
                    Connect.CommitTrans
                    
            'Cierre de la conexión y los objetos utilizados
                        rstTable.Close
                    Connect.Close
                    Set rstTable = Nothing
                Set Connect = Nothing
                
                AsegurarProceso = True
                
                Exit Function
                
            LinErr:
            'Deshacemos la transacción
                Connect.RollbackTrans
                
                AsegurarProceso = False
                
                MsgBox "Se ha producido el error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
            
            End Function
            

            Fuente:

            Vídeo de Mohamed Hassan de Pixabay

            Compartir
            49
            Luis Viadel
            Luis Viadel

            Entradas relacionadas

            07/02/2023

            VBIDE series (Módulos): agregar módulo


            Leer más
            06/02/2023

            VBIDE series (Módulos): Listar módulos


            Leer más
            03/02/2023

            vba: reiniciar MS Access


            Leer más

            Deja una respuesta Cancelar la respuesta

            Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

            ETIQUETAS

            Access API BD Close Colores Comandos ComboBox Consultas Coordenadas Date Diseño DoCmd Excel Fecha FileExists FileSystemObject Filtros For Each...Next Formulario Formularios Funciones GetFolder Google maps images Informes Jose Bengoechea Kill Left Listbox Matrices Menú contextual Node ODBC References Ribbon Right RunCommand Split Tablas Timer TreeView Undo VBA VBIDE With...End With

            ÚLTIMAS ENTRADAS

            • 0
              VBIDE series (Módulos): agregar módulo
              07/02/2023
            • 0
              VBIDE series (Módulos): Listar módulos
              06/02/2023

            ¿QUIERES PUBLICITAR TU EMPRESA AQUÍ?

            SUSCRÍBETE A NUESTRO
            NEWSLETTER

            Recibirás información puntual sobre el mundo de Access y VBA

            ¡Próximamente!

            Promovemos el uso de Access y de la programación en VBA en todo el mundo

            Centro de conocimiento


            Toda la sabiduría de los mejores programadores de Access y VBA a tu alcance.

            Legal

            Política de privacidad

            Condiciones de uso

            Condiciones del redactor

            ®Access Global 2021 | All right reserved
                      No hay resultados Mostrar todos los resultados