USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Não consigo cercar o erro para dar mensagem
flecha
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 09/04/2010 10:26 hs            
Olá,
Tenho uma sub abaixo para retirar o registro que esta no form na tabela "vivo" e arquivar na tabela "morto" e em seguida deletar da tabela " Vivo".
O indice nas duas tabelas é o campo "RG" não aceita duplicação.
Então quando for arquivar na tabela "morto" e existir o RG lá, vai dar o erro.
 
Esta acontecendo o seguinte:
 
Se não tem o RG no Morto esta efetuando o arquivo do registro do form na tabela morto e  deletando da tabela Vivo. Normal.
 
Se já existe o RG na tabela Morto a sub não completa a execução, até pergunta se tem certeza de quer arquivar no morto o fulano, e clicando em sim volta a tela do form com o cara lá, "não fez nada", não arquivou e não deu a mensagem que já tem ele no morto"
 
O que está errado na minha sub?
Não passa na MSGBOX para informar.
Gostaria de colocar quando deu certo a mensagem "Registro arquivado com sucesso"
 
Minha sub:
 

Private Sub Arquivar_Click()
  
    Dim strNOME    As String
    Dim strRG     As String
    Dim lngCustID       As Long
    Dim lngNewSelIndex  As Long
   
    If lvwCustomer.SelectedItem Is Nothing Then
        MsgBox "Não tem Nome selecionado para Arquivar.", _
               vbExclamation, _
               "ARQUIVAR - MORTO"
        Exit Sub
    End If
   
   
 'On Error GoTo erro_mdb 'inicia o tratamento de erros
   
    With lvwCustomer.SelectedItem
        strNOME = .text
        strRG = .SubItems(mlngCUST_RG_IDX)
        lngCustID = CLng(.SubItems(mlngCUST_ID_IDX))
    End With
   
    If MsgBox("Você tem certeza que quer Arquivar Nome '" _
            & strNOME & " " & strRG & "'?", _
              vbYesNo + vbQuestion, _
              "Confirma Exclusão") = vbNo Then
        Exit Sub
    End If
   
   
 On Error GoTo erro_mdb 'inicia o tratamento de erros
 
 
    mobjCmd.CommandText = "INSERT INTO Morto SELECT * FROM Customer WHERE  CustID = " & lngCustID
    mobjCmd.Execute
   
    mobjCmd.CommandText = "DELETE FROM Customer WHERE CustID = " & lngCustID
    mobjCmd.Execute
   
    With lvwCustomer
        If .SelectedItem.Index = .ListItems.Count Then
            lngNewSelIndex = .ListItems.Count - 1
        Else
            lngNewSelIndex = .SelectedItem.Index
        End If
        .ListItems.Remove .SelectedItem.Index
        If .ListItems.Count > 0 Then
            Set .SelectedItem = .ListItems(lngNewSelIndex)
            lvwCustomer_ItemClick .SelectedItem
        Else
            ClearCurrRecControls
        End If
    End With

' Informa o total de registros do bd
    Set mobjRst = New ADODB.Recordset
    mobjRst.CursorLocation = adUseClient
    mobjRst.Open "Select * From Customer", mobjConn, adOpenKeyset, adLockOptimistic, adCmdText
    Label25.Caption = "Total de Registros = " & mobjRst.RecordCount

'-------------
erro_mdb:
If Error = "0" Then Resume Next '"2147467259" Then
If Error = "2147467259" Then

        MsgBox "Erro número : " & Str$(Err.Number) & "  --> RG já Existe no Morto !!! " & Chr(13) _
        & "Favor verificar no Morto pelo RG e confirmar a duplicidade " & Chr(13) _
        & " se é o mesmo do que esta no Vivo. NÃO PODE HAVER (RG) IGUAL" _
        & Chr(13) & "DO MORTO NO VIVO e Vice-Versa " _
        & Chr(13) & "Operação Cancelada"
        'Resume Next   'retorna a ação para a linha de código subsequente áquela que
                      'gerou o erro
End If
End Sub
 
 
Flecha
 
   
flecha
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 09/04/2010 21:34 hs            
Resolvi assim:
 
erro_mdb:
If Str$(Err.Number) = 0 Then
MsgBox "Registro enviado para o MORTO !", _
    vbInformation + vbOKOnly, _
    "Arquivado"
Exit Sub
End If
If Str$(Err.Number) = -2147467259 Then
        MsgBox "Erro número : " & Str$(Err.Number) & "  --> RG já Existe no Morto !!! " & Chr(13) _
        & "Favor verificar no Morto pelo RG e confirmar a duplicidade " & Chr(13) _
        & " se é o mesmo do que esta no Vivo. NÃO PODE HAVER (RG) IGUAL" _
        & Chr(13) & "DO MORTO NO VIVO e Vice-Versa " _
        & Chr(13) & "Operação Cancelada", vbCritical, "Duplicidade de RG"
        'Resume Next   'retorna a ação para a linha de código subsequente áquela que
                      'gerou o erro
End If
 
Flecha
 
Agora deu pane no instal gerado pelo Package Wizard
 
Esta no novo tópico
 
Me ajudem!!!!
Flecha
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página