Ir para conteúdo

POWERED BY:

Arquivado

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

NeguiNVL

Erro validação de código

Recommended Posts

Tpw eu to fazendo uma sisteminha pra controle de estoques, caixa, contas, etc.

e to com uma problema, na parte de cadastro de produtos existe a opção para cadastro do código do produto, e eu preciso q qdo o código já estiver cadastrado, seja exibida uma msg de erro.

 

meu código está ai:

 

 

Set codigo = cn.Execute("SELECT * FROM produtos WHERE codigo='" & strCodigo & "';")If Not codigo.EOF ThenMsgBox "O Código já está cadastrado", vbExclamation, "Erro"ElseIf strCodigo > 99999 ThenMsgBox "O Código deve ter 5 dígitos ou menos", vbExclamation, "Erro"Elsecn.Execute ("insert into produtos(codigo,nome,marca)" _& "values('" & strCodigo & "','" & strNome & "','" & strmarca & "')")End IfEnd Ifinserir = True

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum entendi o que você está precisando?, onde está o erro no seu codigo? qual a msg de erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, é o seguinte, eu preciso q qdo for cadastado um código q já exista, seja retornada uma msg de erro, ele até retorna, mas fecha o projeto, abaixo está uma print do erro:

 

Imagem Postada

 

gostaria q essa msg de erro fosse maix ou menos assim: Código já cadastrado!

 

vou postar tbm meu código:

 

Módulo:Option ExplicitGlobal cn As ADODB.ConnectionGlobal rs As ADODB.RecordsetPrivate Sub Main()Dim strArquivo As StringDim strLocal As StringDim ConectaAccess As StringLoad PrincipalPrincipal.ShowDoEventsSet cn = New ADODB.ConnectionSet rs = New ADODB.RecordsetstrArquivo = "controle.mdb"strLocal = App.PathSet cn = CreateObject("ADODB.Connection")ConectaAccess = "Driver={Microsoft Access Driver (*.mdb)};" & _"Dbq=" & strArquivo & ";" & _"DefaultDir=" & strLocal & ";" & _"Uid=Admin;Pwd=J0G0musempre;"cn.Open ConectaAccessEnd SubPublic Function inserir(ByVal strCodigo As String, _strNome As String, _strmarca As String) As VariantIf strCodigo > 99999 ThenMsgBox "O Código deve ter 5 dígitos ou menos", vbExclamation, "Erro"Elsecn.Execute ("insert into produtos(codigo,nome,marca)" _& "values('" & strCodigo & "','" & strNome & "','" & strmarca & "')")End Ifinserir = TrueEnd FunctionPublic Function alterar(ByVal intCodigo As Integer, _strNome As String, _strmarca As String) As Variantcn.Execute "update produtos set nome= '" & strNome & "'," _& " marca= '" & strmarca & "'" _& " where codigo = " & intCodigoalterar = TrueEnd FunctionPublic Function Consultar(ByVal intCodigo As Integer) As VariantSet rs = CreateObject("ADODB.Recordset")With rs.Open "select * from produtos where codigo=" & intCodigo & "", cn, adOpenKeyset, adLockOptimisticIf .RecordCount <> 0 ThenProdutos.lblcod = !codigoProdutos.txtnome = IIf(IsNull(!nome), Empty, !nome)Produtos.txtmarca = IIf(IsNull(!marca), Empty, !marca)ElseMsgBox "Código não cadastrado", vbExclamation, "Erro"End If.CloseEnd WithEnd FunctionPublic Function excluir(ByVal intCodigo As Integer) As Variantcn.Execute "delete * from produtos where codigo=" & intCodigo & ""excluir = TrueEnd Function
Formulário Produtos:Private Sub cmdAlterar_Click()Dim atual As Variantatual = alterar(lblcod.Text, txtnome.Text, txtmarca.Text)If atual = True ThenCall limparElseMsgBox "Erro na atualização.", vbCriticalEnd IfEnd SubPrivate Sub cmdConsultar_Click()Dim nome As IntegerintCodigo = InputBox("Digite o Código:", "Busca")If intCodigo > 99999 ThenMsgBox "O Código deve ter 5 dígitos ou menos", vbExclamation, "Erro"ElseIf intCodigo = "" ThenMsgBox "Digite Código", vbExclamation, "Erro"ElseConsultar (intCodigo)End IfEnd IfEnd SubPrivate Sub cmdExcluir_Click()If lblcod = "" ThencmdExcluir.Enabled = FalseElseIf lblcod <> "" ThencmdExcluir.Enabled = TrueDim excluido As Variantexcluido = excluir(lblcod.Text)If excluido = True ThenCall limparElseMsgBox "Erro na excluisão.", vbCriticalEnd IfEnd IfEnd IfEnd SubPrivate Sub cmdIncluir_Click()Dim novo As Variantnovo = inserir(lblcod.Text, txtnome.Text, txtmarca.Text)If novo = True ThenCall limparElseMsgBox "Erro na incluisão.", vbCriticalEnd IfEnd SubPrivate Sub limpar()lblcod.Text = ""txtnome.Text = ""txtmarca.Text = ""End SubPrivate Sub cmdSair_Click()cn.CloseSet cn = NothingUnload MeEnd SubPrivate Sub fecha_Click()cn.CloseSet cn = NothingUnload MeEnd SubPrivate Sub sobre_Click()		Call MsgBox("Marques Soft © Kit Financeiro ®." _					& vbCrLf & "Programa feito para aplicações comerciais!" _					& vbCrLf & "Todos os Direitos Reservados © 2006 Marques Soft . " _					& vbCrLf & "" _					, vbInformation + vbDefaultButton1, "Sobre")		End Sub
ta aew, qm puder ajudar eu agradeço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usar a propriedade recordcount, assim:

 

Set codigo = cn.Execute("SELECT * FROM produtos WHERE codigo='" & strCodigo & "';")If codigo.recordcount > 0 Then   MsgBox "O Código já está cadastrado", vbExclamation, "Erro"Else   If strCodigo > 99999 Then	  MsgBox "O Código deve ter 5 dígitos ou menos", vbExclamation, "Erro"   Else	  cn.Execute ("insert into produtos(codigo,nome,marca)" _& "values('" & strCodigo & "','" & strNome & "','" & strmarca & "')")   End IfEnd Ifinserir = True

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.