Boa tarde ! Vamos ver se alguém já teve esse problema e conseguiu resolver.
Sem mais nem menos, um aplicativo meu que já funcionava normalmente começou a gerar run time error '5'. Ao debugar não descobria nada pq o erro não ocorria, acontecia apenas no executável.
Qdo coloquei alguns msgbox no meio do código pra analisar em que ponto estava o erro, descobri que o erro era justamente no msgbox: ele executa o msgbox, aparece na tela e logo após gera o erro citado.
Depois de fuçar nos helps e consultar alguns colegas aqui do banco, passei a investigar todos os msgboxes do aplicativo e descobri que todos eles funcionam, menos os que coloquei abaixo com 2 asteriscos (**).
Já encontrei em alguma documentação algo falando sobre o uso do setfocus que pode causar problemas, mas nesse caso justamente o que tem o setfocus é o que está funcionando.
Curioso que, pra testar, eu peguei o primeiro msgbox que está ai abaixo com dois asteriscos e copiei e colei na linha de baixo. Qdo executei, o primeiro passou, o segundo gerou erro.
O estranho é que o danado do erro só dá no executável, qdo rodo na suite de programação do VB o bicho roda direitinho.
Alguém teria alguma noção de pelo menos onde eu posso pesquisar sobre esse erro?
ABRAÇOS !!
Private Sub cmdOkCancelarExclui_Click(Index As Integer)
Dim cndbrvl As New ADODB.Connection
Dim rsUnd As New ADODB.Recordset
Dim Selecionar As String
Dim QtdReg As Long
If Index = 0 Then
If Not IsDate(txtdt_exclui) Then
** MsgBox "Data inválida !!", vbInformation, "Atenção" & NmTitFdo
txtdt_exclui.SetFocus
Exit Sub
End If
Open CaminhoDestIntMDB & NmArqDtAtu & ExtDAT For Random As #NrArqTxt Len = Len(PegaDtAtu)
Get #NrArqTxt, 1, PegaDtAtu
Close #NrArqTxt
CaractArqDtAtu = Asc(PegaDtAtu.DtAtu)
If CaractArqDtAtu = 0 Then
Close #NrArqTxt
ElseIf DateValue(txtdt_exclui.Text) < DateValue(PegaDtAtu.DtAtu) - 5 Then
If UCase(TitLegAmbiente) <> "DESENVOLVIMENTO" Then
* If MsgBox("A data informada é muito anterior à da última atualização, " & vbCr & "DESEJA EXCLUIR ASSIM MESMO ?", vbOKCancel, NmTitFdo) = vbCancel Then
Exit Sub
End If
End If
End If
Screen.MousePointer = vbHourglass
cmdOkCancelarExclui(0).Enabled = False
cmdOkCancelarExclui(1).Enabled = False
cndbrvl.Open StringConeccao
cndbrvl.CursorLocation = adUseClient
Selecionar = "SELECT * FROM " & NmArqTb
Selecionar = Selecionar & " WHERE DT_PROC = cdate('" & txtdt_exclui & "')"
rsUnd.Open Selecionar, cndbrvl, adOpenStatic, adLockPessimistic, adCmdText
QtdReg = rsUnd.RecordCount
rsUnd.Close
If UCase(TitLegAmbiente) = "DESENVOLVIMENTO" Then
Selecionar = "DELETE FROM " & NmArqTb & " "
Selecionar = Selecionar & "WHERE DT_PROC = cdate('" & txtdt_exclui & "')"
cndbrvl.Execute Selecionar, , adExecuteNoRecords
Else
* If MsgBox("Deseja excluir todo o movimento da data: " & txtdt_exclui & " ? ", vbYesNo + vbInformation, NmTitFdo) = vbYes Then
Selecionar = "DELETE FROM " & NmArqTb & " "
Selecionar = Selecionar & "WHERE DT_PROC = cdate('" & txtdt_exclui & "')"
cndbrvl.Execute Selecionar, , adExecuteNoRecords
Else
Screen.MousePointer = vbDefault
Unload Me
Exit Sub
End If
End If
Screen.MousePointer = vbDefault
DiaHoraLog = "(" & Date & " - " & Time & " -" & UCase(CodUsuario) & "- " & Me.Caption & ") "
GeraMsgLog.MsgArqTexto = DiaHoraLog & "EXCLUÍDO(S): " & QtdReg & " REGISTRO(S) " & "COM A DATA: " & txtdt_exclui
ValidaLog = GravaLOG(GeraMsgLog, 2)
* MsgBox RTrim(GeraMsgLog.MsgArqTexto), vbInformation, NmTitFdo
If UCase(TitLegAmbiente) = "DESENVOLVIMENTO" Then
Open CaminhoDestIntMDB & NmArqDtAtu & ExtDAT For Output As #NrArqTxt Len = Len(PegaDtAtu)
Print #NrArqTxt, "31/12/2099"
Close #NrArqTxt
Else
Open CaminhoDestIntMDB & NmArqDtAtu & ExtDAT For Output As #NrArqTxt Len = Len(PegaDtAtu)
Print #NrArqTxt, txtdt_exclui
Close #NrArqTxt
End If
Unload Me
Else
** MsgBox "Operação cancelada pelo usuário", vbInformation, NmTitFdo
cmdOkCancelarExclui(0).Enabled = True
cmdOkCancelarExclui(1).Enabled = True
Unload Me
End If
End Sub
Msgbox Run Time Error '5'
Started By Bisgô, 21/06/2007, 17:26
1 reply to this topic
#1
Posted 21/06/2007, 17:26
#2
Posted 27/07/2007, 12:07
Olá Amigo!!!
O VB é assim mesmo, eventualmente dá erro no executável e não quando se debuga.
Assim, quando for usar date joga um val no conteúdo que irá testar, senão ele vai dar runtime mesmo.
Qualquer coisa só chamar.
[]`s
O VB é assim mesmo, eventualmente dá erro no executável e não quando se debuga.
Assim, quando for usar date joga um val no conteúdo que irá testar, senão ele vai dar runtime mesmo.
Qualquer coisa só chamar.
[]`s
Bruno Cesar Dutra - "Mudar é ir Além!"
UbuntuUser - 7.04
Poesias Trash - Idiotice & Conscientização | BlackVistaMod @ Tecnologia
UbuntuUser - 7.04
Poesias Trash - Idiotice & Conscientização | BlackVistaMod @ Tecnologia
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)