MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end

    avatar
    onfire
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 41
    Registrado : 18/09/2016

    [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end Empty [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end

    Mensagem  onfire 4/6/2024, 09:46

    Bom dia a todos
    Uso um front com tabela desvinculada.
    Por vezes pode ocorrer a perda de ligação à bd (queda da ligação VPN) e o front congela.
    Existe algum código vba para que quando isso ocorra, o sistema não congele e permaneça estável a aguardar.

    Ou seja,
    Se existir uma quebra na ligação, não faz nada
    Caso contrário, continua o processo de inserção de dados

    Existe algo do género?

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3417
    Registrado : 13/12/2016

    [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end Empty Re: [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end

    Mensagem  Alexandre Fim 12/6/2024, 17:02

    Olá Nelio,

    O vinculo do o banco de dados também é em Access? Ou vc utiliza outro database?

    Att,

    Alexandre Fim



    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    onfire
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 41
    Registrado : 18/09/2016

    [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end Empty Re: [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end

    Mensagem  onfire 16/6/2024, 00:02

    É também através de msaccess.

    Eu descobri esta solução.
    Coloquei em módulo.

    Código:
    Public Sub Link_Test()
       
        Dim db As DAO.Database
        Dim strCaminhoBD As String
        Dim strConexao As String
        Dim rst As DAO.Recordset
       
        ' Caminho para a base de dados que você quer testar
        strCaminhoBD = "Y:\NuvemEmpresa\Clientes\Controlos impostos e pendentes\01 tempos gastos\teste de crm com controlo de horas.accdb"
       
       
       
      On Error GoTo TratamentoErro1
        ' Tentar abrir a base de dados
        Set db = DBEngine.OpenDatabase(strCaminhoBD)
       
       
         
        ' Tentar abrir um recordset em qualquer tabela da base de dados
            Set rst = db.OpenRecordset("Tabela_DW", dbOpenSnapshot)
       
         
       
        ' Fechar o recordset e a base de dados
        rst.Close
        db.Close
       
    TratamentoErro1:
        ' Tratamento de erro
        If Err.Number = 3024 Then
            MsgBox "Desconectado da base de dados. Verifique a VPN", vbCritical
        End If
       
        ' Limpar as variáveis
        Set rst = Nothing
        Set db = Nothing
        Exit Sub
       
    End Sub


    Depois no formulário em cada evento faço esse teste através do Call à sub


    Código:
    Private Sub Cbx_Cliente_GotFocus()

    Call Link_Test

    Dim strSQL As String, rs As DAO.Recordset
    On Error Resume Next
    strSQL = "SELECT tbl_cliente.Cli_nome FROM tbl_cliente WHERE tbl_cliente.Status=True ORDER BY tbl_cliente.Cli_nome;"

    Set rs = CurrentDb.OpenRecordset(strSQL)

    With Me.Cbx_Cliente
      .RowSource = ""
      .RowSourceType = "Value List"
      Do Until rs.EOF
          .AddItem rs!cli_nome
          rs.MoveNext
      Loop
    End With

    rs.Close
    Set rs = Nothing
    End Sub


    Não sei se será o melhor método, mas funciona de acordo com o pretendido.
    Se falhar a ligação não congela o msaccess. Ele simplesmemte termina o procedimento e envia a mensagem, mas mantém os dados para o insert.

    Conteúdo patrocinado


    [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end Empty Re: [Resolvido]Como não perder dados de inserção quando perde ligação ao back-end

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/9/2024, 01:02