Ir ao conteúdo

erro no vb


eduardo_constança

Posts recomendados

Postado

E ai pessoal, como estão ? Muita chuva ? Rsrs

Galera, é seguinte, estou com este erro a dois dias, e já ate melhorou! Mais ainda esta me atordoando! Vê se vocês conseguem me ajudar!

O erro é inicial era:

Object variable or with block variable not set.

O erro agora é:

Update erroe No.0:

O codigo de tratamento de erro é:

Private Sub Form_Activate()

On Error GoTo vError

rsCadastro.MoveLast

txtCodigo_banco = (rsCadastro!codigo_banco + 1)

txtNumero_cartucho.SetFocus

txtData_entrada = Date

vError:

If Err.Number = 91 Then

Resume Next

Else

MsgBox "Update Error No. " & Err.Number & ": " & Err.Description, vbCritical, "Error"

End If

Screen.MousePointer = vbDefault

End sub

Se puderem me ajudar .... valeu!?

Ate

Postado

O problema é que você não pos uma condição de saída antes do tratamento de erro. Então mesmo que o não dê erro (Err.Number = 0), ele está caindo no msgbox.

O que eu recomendo é que você coloque um "Exit sub" antes do label do handler de erro. Assim:



Private Sub Form_Activate()
On Error GoTo vError

rsCadastro.MoveLast
txtCodigo_banco = (rsCadastro!codigo_banco + 1)

txtNumero_cartucho.SetFocus
txtData_entrada = Date

Exit Sub

vError:
If Err.Number = 91 Then
Resume Next
Else
MsgBox "Update Error No. " & Err.Number & ": " & Err.Description, vbCritical, "Error"
End If
Screen.MousePointer = vbDefault
End sub

Se aceitar um conselho... O tratamento de erro no VB já horrível por natureza e fica pior ainda usando labels e "Resume Next".

Sempre que possível, faça o tratamento direto na linha que pode dar erro. Usa o "On Error Resume Next" antes da linha que pode dar erro, e depois testa o "Err.Number <> 0".

JP

Postado

'Para não mexer muito no seu código, implemente algo assim:

Private Sub Form_Activate()

On Error GoTo vError

rsCadastro.MoveLast

txtCodigo_banco = (rsCadastro!codigo_banco + 1)

txtNumero_cartucho.SetFocus

txtData_entrada = Date

vError:

If Err.Number <> 0 Then

If Err.Number = 91 Then

Resume Next

Else

MsgBox "Update Error No. " & Err.Number & ": " & Err.Description, vbCritical, "Error"

End If

End If

Screen.MousePointer = vbDefault

End sub

'err.Number = 0 vai ocorrer sempre que não existir erro.

'Fique em Paz

Postado

Oi pessoal, eu coloquei o tratamento de erro e ela até funciona (meio que capengando) rsrs ele da um erro mais que não esta atrapalhando (eu acho)

O erro dele é: INVALID ARGUMENT (depois ele funciona normal)

Agora estou com outro pepino!

Eu tenho este código e ele da erro no .Execute

O código é:

Private Sub cmdGravar_Click()

Set OP = New ADODB.Command

With OP

.ActiveConnection = CN

.CommandText = "insert into cadastro_cartucho (codigo_banco,numero_cartucho,codigo_cartucho,tipo_cartucho,data_entrada,data_saida) values ('" & txtCodigo_banco.Text & "','" & txtNumero_cartucho.Text & "','" & txtCodigo_cartucho.Text & "','" & optBlack.Value & "','" & optColor.Value & "','" & txtData_entrada.Text & "','" & txtData_saida.Text & "');"

.Execute

End With

Set OP = Nothing

MsgBox "Registro incluso com sucesso!", vbInformation, "Atenção"

End Sub

o erro é: (esta em anexo)

post-131252-13884945290473_thumb.jpg

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...