Até aí tudo bem, ele roda normal e insere normal no banco.
Mas aí a pessoa resolve gerar dois campos ou mais campos de novo do formulário e digita:
Nome: Ok (veja que esse nome já foi digitado antes e estar no banco)
Nome: ok 2
Nome: ok 3
Aí na hora de inserir criei esse teste antes para ver se já existe o nome no banco, se existe ele não insere.
Ele manda uma session com a quantidade de campos criados no formulário que é preenchido para inserir no banco e faz o teste:
for i=1 to session("novo")
teste= "Select * from fabricantes where nome = '" & request.form("nome"&i)& "'"
Set rsfabricantesteste=Conexao.Execute(teste)
next
Só que aí é que está o problema... Se o nome Ok, que já foi digitado e inserido no campo, for o primeiro dos campos do formulário, como no exemplo acima, ele não reconhece neste teste que fiz.
Isso ocorre por esse motivo lógico: porque ele dará o loop... quando passa o nome Ok (que já foi digitado) ele ver que está no banco, mas terá que dar outro loop de novo para ver os nomes Ok 2 e Ok 3 que não foi digitado antes e assim ao acabar os loops ele irá considerar o último loop que foi com o nome Ok 3 e assim "esquece" que logo no inicio o nome Ok já está no banco e acaba cadastrando tudo: Ok (de novo), Ok 2, Ok 3.
Ele só funciona se o nome Ok foi digitado no último campo gerado no formulário, pois terá o loop testando Ok 2, Ok3 e o último será o Ok e assim ele irá considerar o ultimo loop que foi com o nome Ok (que já foi cadastrado antes) e verá que não pode cadastrá-lo e acusa que não pode cadastrar.
Então como resolver isso? Como fazer com que o teste reconheça o que já foi cadastrado, como esse nome Ok por exemplo, em qualquer posição do loop?
Tipo se ele foi cadastrado no primeiro campo, segundo ou terceiro campo do formulário, não importa, o importante é que ele reconheça que uma vez já foi cadastro esse nome Ok e em um determinado momento do Loop acusou isso (não importa se foi no ultimo loop ou o primeiro loop do teste).
Pois assim não deixo que a pessoa insira o mesmo nome já cadastrado juntos com outros nomes novos. Como resolver isso, alguém pode ver isso?
Pergunta
marvi
Olá pessoal, vamos lá...
Como resolver essa lógica:
Tem um formulário que pode gerar vários campos e se a pessoa resolver gerar dois campos ocorre isso:
Nome:
Nome:
Aí a pessoa digita, por exemplo:
Nome: Ok
Nome: Ok1
E envia para o banco de vez.
Código:
Até aí tudo bem, ele roda normal e insere normal no banco. Mas aí a pessoa resolve gerar dois campos ou mais campos de novo do formulário e digita: Nome: Ok (veja que esse nome já foi digitado antes e estar no banco) Nome: ok 2 Nome: ok 3 Aí na hora de inserir criei esse teste antes para ver se já existe o nome no banco, se existe ele não insere. Ele manda uma session com a quantidade de campos criados no formulário que é preenchido para inserir no banco e faz o teste:Só que aí é que está o problema... Se o nome Ok, que já foi digitado e inserido no campo, for o primeiro dos campos do formulário, como no exemplo acima, ele não reconhece neste teste que fiz.
Isso ocorre por esse motivo lógico: porque ele dará o loop... quando passa o nome Ok (que já foi digitado) ele ver que está no banco, mas terá que dar outro loop de novo para ver os nomes Ok 2 e Ok 3 que não foi digitado antes e assim ao acabar os loops ele irá considerar o último loop que foi com o nome Ok 3 e assim "esquece" que logo no inicio o nome Ok já está no banco e acaba cadastrando tudo: Ok (de novo), Ok 2, Ok 3.
Ele só funciona se o nome Ok foi digitado no último campo gerado no formulário, pois terá o loop testando Ok 2, Ok3 e o último será o Ok e assim ele irá considerar o ultimo loop que foi com o nome Ok (que já foi cadastrado antes) e verá que não pode cadastrá-lo e acusa que não pode cadastrar.
Então como resolver isso? Como fazer com que o teste reconheça o que já foi cadastrado, como esse nome Ok por exemplo, em qualquer posição do loop?
Tipo se ele foi cadastrado no primeiro campo, segundo ou terceiro campo do formulário, não importa, o importante é que ele reconheça que uma vez já foi cadastro esse nome Ok e em um determinado momento do Loop acusou isso (não importa se foi no ultimo loop ou o primeiro loop do teste).
Pois assim não deixo que a pessoa insira o mesmo nome já cadastrado juntos com outros nomes novos. Como resolver isso, alguém pode ver isso?
Já tentei aqui e nada...
Obrigado!!
Marcelo
Editado por marviLink para o comentário
Compartilhar em outros sites
17 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.