ON ERROR GOTO

JAMESBOND007 16/07/2010 16:47:15
#347585
Private Sub Command1_Click()
If Text12.Text = [Ô][Ô] Or Text2.Text = [Ô][Ô] Or Text3.Text = [Ô][Ô] Or Text4.Text = [Ô][Ô] Or Text5.Text = [Ô][Ô] Then
MsgBox [Ô]Preencha Todos os Campos[Ô], vbCritical, [Ô]Aviso![Ô]
Exit Sub
End If
On Error GoTo PrintError

If tabelas.State = adStateOpen Then tabelas.Close
conectiva.Execute [Ô]Insert Into Pneus(placa, PneuD_LDE, PneuD_LDD, PneuT_LDE, PneuT_LDD, ESTEPE_Pneus)[Ô] & _
[Ô]Values([ô][Ô] & lblplaca.Caption & [Ô][ô],[ô][Ô] & Text12.Text & [Ô][ô],[ô][Ô] & Text2.Text & [Ô][ô],[ô][Ô] & Text3.Text & [Ô][ô],[ô][Ô] & Text4.Text & [Ô][ô],[ô][Ô] & Text5.Text & [Ô][ô])[Ô]
PrintError: msgbox [Ô]Verifique pois você esta tentando gravar o mesmo VALOR![Ô]
beta = [Ô]incluídas[Ô]
Call box_1
Call limpar
Unload Me

End Sub
esta errada esse comando? ele funciona mas não grava.
EDUFS 16/07/2010 18:03:49
#347602
Private Sub Command1_Click()
If Text12.Text = [Ô][Ô] Or Text2.Text = [Ô][Ô] Or Text3.Text = [Ô][Ô] Or Text4.Text = [Ô][Ô] Or Text5.Text = [Ô][Ô] Then
MsgBox [Ô]Preencha Todos os Campos[Ô], vbCritical, [Ô]Aviso![Ô]
Exit Sub
End If
On Error GoTo PrintError

If tabelas.State = adStateOpen Then tabelas.Close
conectiva.Execute [Ô]Insert Into Pneus(placa, PneuD_LDE, PneuD_LDD, PneuT_LDE, PneuT_LDD, ESTEPE_Pneus)[Ô] & _
[Ô]Values([ô][Ô] & lblplaca.Caption & [Ô][ô],[ô][Ô] & Text12.Text & [Ô][ô],[ô][Ô] & Text2.Text & [Ô][ô],[ô][Ô] & Text3.Text & [Ô][ô],[ô][Ô] & Text4.Text & [Ô][ô],[ô][Ô] & Text5.Text & [Ô][ô])[Ô]

[txt-color=#e80000]EXIT SUB[/txt-color]

PrintError:
msgbox [Ô]Verifique pois você esta tentando gravar o mesmo VALOR![Ô]
beta = [Ô]incluídas[Ô]
Call box_1
Call limpar
Unload Me

End Sub
TECLA 17/07/2010 09:36:32
#347618
Outra coisa, fique atento quanto ao TIPO DE DADOS de cada coluna.
JAMESBOND007 19/07/2010 15:40:53
#347757
Como assim tecla?
JAMESBOND007 20/07/2010 08:36:07
#347844
não tem ne3nhuma condição de que se ocorrer o erro ele não possa executar (box_1)*(Limpar)
Private Sub Command1_Click()
If Text12.Text = [Ô][Ô] Or Text2.Text = [Ô][Ô] Or Text3.Text = [Ô][Ô] Or Text4.Text = [Ô][Ô] Or Text5.Text = [Ô][Ô] Then
MsgBox [Ô]Preencha Todos os Campos[Ô], vbCritical, [Ô]Aviso![Ô]
Exit Sub
End If
On Error GoTo PrintError

If tabelas.State = adStateOpen Then tabelas.Close
conectiva.Execute [Ô]Insert Into Pneus(placa, PneuD_LDE, PneuD_LDD, PneuT_LDE, PneuT_LDD, ESTEPE_Pneus)[Ô] & _
[Ô]Values([ô][Ô] & lblplaca.Caption & [Ô][ô],[ô][Ô] & Text12.Text & [Ô][ô],[ô][Ô] & Text2.Text & [Ô][ô],[ô][Ô] & Text3.Text & [Ô][ô],[ô][Ô] & Text4.Text & [Ô][ô],[ô][Ô] & Text5.Text & [Ô][ô])[Ô]

EXIT SUB

PrintError:
msgbox [Ô]Verifique pois você esta tentando gravar o mesmo VALOR![Ô]
beta = [Ô]incluídas[Ô]
Call box_1
Call limpar
Unload Me

End Sub
TECLA 20/07/2010 09:02:26
#347853
Todos os campos são do tipo TEXTO?
Outra coisa, estava faltando um ESPAÇO entre a instrução INSERT INTO() e a VALUES().

Segue corrigido:
conectiva.Execute [Ô]Insert Into Pneus(placa, PneuD_LDE, PneuD_LDD, PneuT_LDE, PneuT_LDD, ESTEPE_Pneus) [Ô] & _
[Ô]Values([ô][Ô] & lblplaca.Caption & [Ô][ô],[ô][Ô] & Text12.Text & [Ô][ô],[ô][Ô] & Text2.Text & [Ô][ô],[ô][Ô] & Text3.Text & [Ô][ô],[ô][Ô] & Text4.Text & [Ô][ô],[ô][Ô] & Text5.Text & [Ô][ô])[Ô]
MARCELO.TREZE 20/07/2010 09:02:47
#347854
Veja Bem como se tratar erros

o ON ERROR GOTO eu costumo usar como primeira linha ou seja qualquer erro no código ele pula para função que exibe o erro,. a forma usada já foi descrita.

ex:

Private Sub Form_Load()
On Error Goto TrataErro

'seu código vai aqui

Exit Sub
TrataErro:
msgbox [Ô]deu erro[Ô]
End Sub


bom assim se o erro ocorrer ele simplismente pula a função e exibe a mensagem, porém vc deve saber o que está causando o erro em questão e tentar evita-lo.




JAMESBOND007 20/07/2010 09:13:19
#347857
no caso se o cara gravar a mesma coisa da erro teria como criar uma mensagem para isso se o cara for duplicar os dados?
JAMESBOND007 20/07/2010 16:18:07
#347955
Entenderam???
MSMJUDAS 20/07/2010 16:25:42
#347958
Resposta escolhida
JAMES,

Nesse caso de não permitir dados duplicados acho melhor vc fazer assim:

Consulte um determinado dado, um novo CPF por ex., verifique se existe o CPF no banco de dados, se existir mostre uma mensagem:

If Existe = True Then
MsGBox [Ô]CPF já existe no banco de dados![Ô], vbExclamation, [Ô]Aviso - CPF[Ô]
TxtCPF.SetFocus
Exit Sub
End IF

O On Error GoTo geralmente é utilizado para erros de tipos de dados, parametros errado, falta de alguma coisa, etc. Bom, pelo menos eu uso pra isso. Não vejo dados duplicados como sendo um erro e sim como uma falta de tratamento de dados.
JAMESBOND007 20/07/2010 17:15:04
#347968
Fiz desta forma mais ainda me apresenta erros!
            If mskCodigo.Text = tabelas!codigo = True Then
MsgBox [Ô]Código já existe no banco de dados![Ô], vbExclamation, [Ô]Aviso - Código[Ô]
txtnome.SetFocus
Else
Call gravar
Exit Sub
End If
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas