Bruno Pola Postado Março 19, 2007 Denunciar Share Postado Março 19, 2007 Então, tenho que fazer um sisteminha que tem login de usuários.Só que não consigo fazer um controle certinho sobre os usuários cadastrados.Fiz um recordset mas não deu muito certo não:var= "Nome='" * nome.Text * "'"DtUser.Recordset.FindFirst varIf aoa = 1 ThenMsgBox "Usuário já existente", vbInformation, "Aviso"Else;[/codebox]mas não funciona..alguém pode me ajudar a clarear as idéias??vlwwele dá um erro de Type Mismatch, mas mesmo assim salva os dados na tabela... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 20, 2007 Denunciar Share Postado Março 20, 2007 Aqui está errado...var= "Nome='" * nome.Text * "'" ... os astericos devem estar dentro da string: var= "Nome='*" & nome.Text & "*'"Só que você vai ter problemas procurando assim o nome do usuário. Você, por exemplo, não vai poder ter uma usuária chamada Mariana e outra chamada Ana. Isso porque "Ana" está dentro de "Mariana", e vai acusar que o usuário já existe. Sugiro a você retirar os astericos para procurar o nome exato.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 20, 2007 Autor Denunciar Share Postado Março 20, 2007 Vish, deu certo..Mas mesmo assim tá salvando...E agora apareceu o erro que tá faltando o addnew pra salvar os dados..Mas o addnew tá noutro botão...O botão que salva é esse:If Sim.Value = True Then DtUser.Recordset("Administrador") = "S" ElseIf não.Value = True Then DtUser.Recordset("Administrador") = "N" End IfVar = "Nome='" & nome.Text & "'"DtUser.Recordset.FindFirst (Var)If Var <> 0 ThenMsgBox "Usuário já existente", vbInformation, "Aviso"DtUser.Recordset.CancelUpdateEnd IfDtUser.Recordset.Update[/codebox]alguém pode ajudar?Vlww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 20, 2007 Denunciar Share Postado Março 20, 2007 e porque você num pode por o addnew nesse botao?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 21, 2007 Autor Denunciar Share Postado Março 21, 2007 (editado) Ah cara, já tentei de tudo..Dá o mesmo erro..E mesmo assim, eu tenho o botão novo.Lá tá o add new.. como sempre fiz..só que eu nunca tinha feito um controle de senhas.. Editado Março 22, 2007 por Bruno Pola Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Março 22, 2007 Denunciar Share Postado Março 22, 2007 qual é exatamente a linha e a descricao do erro?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 26, 2007 Autor Denunciar Share Postado Março 26, 2007 É assim, ele dá o erro como se não tivesse add new....E dá a mensagem que já existe o usuário cadastrado..A linha que dá o erro, são 2 options que dizem se o usuário cadastrado é administrador ou não...Mas, mesmo assim ele salva na tabela... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 27, 2007 Denunciar Share Postado Março 27, 2007 Tem um problema sério no seu código. Você está usando o mesmo DataControl para adicionar e para fazer a pesquisa (ao mesmo tempo). Provavelmente você está chamando o AddNew (que posiciona o cursor em um novo registro, em branco). Daí, naquele seu código você faz um FindFirst (que posiciona o seu cursor no registro encontrado ou em EOF caso não encontre). Ao fazer isso você está finalizando o seu AddNew. O ideal no caso seria fazer a pesquisa antes de chamar o AddNew, porque você não pode mexer no cursor da tabela enquanto está adicionando um registro.Sacou? ;)Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 27, 2007 Autor Denunciar Share Postado Março 27, 2007 Putz.. nem tinha pensado nisso....É por isso o erro então...Só uma coisa que eu não entendi...Mas se ele finaliza, porque ele salva na tabela os dados que eu digitei?E como eu vou fazer essa pesquisa antes do AddNew(mas isso eu vou pensar!!!)E valeu cara!!Me ajudou bst!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Donati Postado Março 27, 2007 Denunciar Share Postado Março 27, 2007 Bruno,isto esta acontecendo devido voce não colocar um exit sub abaixo da linha;dtuser.recordset.cancelupdateveja como ficaria o seu codigoVar = "Nome='" & nome.Text & "'"DtUser.Recordset.FindFirst (Var)If Var <> 0 ThenMsgBox "Usuário já existente", vbInformation, "Aviso"DtUser.Recordset.CancelUpdateexit subEnd IfDtUser.Recordset.Updatepois se voce não colocar o exit sub o sistema vai continuar executando a rotina e tambem ira executar a linha DtUser.Recordset.UpdateEspero ter te ajudado em alguma coisafui!!!!!!!!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 27, 2007 Autor Denunciar Share Postado Março 27, 2007 HmmIsso também já tentei..Mas tipo.. Assim ele vai cancelar tudo, até o registro criado.Eu queria que avisasse que existe o usuário e voltasse pro text para quem estiver cadastrando poder alterar, não começar tudo denovo entendeu?Mas de inicio, eu pensei em deixar assim, pois são poucos campos.Só que mais pra frente, vai ser uma ficha completa dos usuários!Aí complica se cancelar tudo né?Mas valeu mesmo assim!!Tem um problema sério no seu código. Você está usando o mesmo DataControl para adicionar e para fazer a pesquisa (ao mesmo tempo). Provavelmente você está chamando o AddNew (que posiciona o cursor em um novo registro, em branco). Daí, naquele seu código você faz um FindFirst (que posiciona o seu cursor no registro encontrado ou em EOF caso não encontre). Ao fazer isso você está finalizando o seu AddNew. O ideal no caso seria fazer a pesquisa antes de chamar o AddNew, porque você não pode mexer no cursor da tabela enquanto está adicionando um registro.Sacou? ;)GraymalkinTem como eu fazer uma pesquisa com outro data?Ou melhor, tem como me dar um toque, sobre como fazer assim?porque não saiu nada aquixheheh Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Donati Postado Março 27, 2007 Denunciar Share Postado Março 27, 2007 fala aiquando voce coloca exit sub, o sistema simplesmente para de executar aquela sub e retorna ao ponto de onde ela foi chamada.fui!!!!!!!!!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 28, 2007 Autor Denunciar Share Postado Março 28, 2007 (editado) Olha.. eunão entendi muito bem o que ue você quis dizer...Mas com o exitsub lá..ele pára de funcionar tudo...até quando eu clico no cancelar, ele avisa que não existe nenhum addnew ou edit...e se eu troco o nome que eu digitei, ele me avisa falando que existe esse registro e altera o ultimo da tabela...Exemplotenho um registro Brunotento adicionar outro Bruno, ele me avisa que já existe e pára.ai eu digito zé(que não existe), ele me avisa que já tem o zé e altera o Bruno que eu tinha para zé, só que o programa não sai dai. Se eu tento fazer alguma coisa, ele fala que eu não tenho nenhum addnew ou edit em evidencia.....vai entender essas coisas!aeiueahieauheiauheaiuavlwww! Editado Março 28, 2007 por Bruno Pola Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 28, 2007 Denunciar Share Postado Março 28, 2007 Eu *acho* que você pode fazer o seguinte:rs = DtUser.Database.OpenRecordset("SELECT * FROM tabela WHERE Nome='" & nome.Text & "'") If Not (rs.EOF And rs.BOF) Then MsgBox "Usuário já existente", vbInformation, "Aviso" DtUser.Recordset.CancelUpdate Else DtUser.Recordset.Update End IfVeja aí se funciona. Tem muito tempo que não uso DAO e o código acima eu não testei.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 29, 2007 Autor Denunciar Share Postado Março 29, 2007 (editado) Ele dá um erro no If Not...Sinceramente não sei o que acontece..Se eu troco o If Not pelo If só:If rs.EOF <> 0 And rs.BOF <> 0 thenou somente:If rs<>0 thenEle dá a mensagem:"Erro de Automatização"Nunca vi essas coisas aieuhiaeuheiuMas valeeu! Editado Março 29, 2007 por Bruno Pola Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Donati Postado Março 29, 2007 Denunciar Share Postado Março 29, 2007 Bom faz tempo que eu não uso DAO tambem mas acho que o codigo tem que ser assim:rs = DtUser.Database.OpenRecordset("SELECT * FROM tabela WHERE Nome='" & nome.Text & "'")If rs.EOF = false And rs.BOF= false Then MsgBox "Usuário já existente", vbInformation, "Aviso" DtUser.Recordset.CancelUpdateElse DtUser.Recordset.UpdateEnd If[/codebox]faz alguns teste ai!!!!!!t+FUI!!!!!!!!!!!!!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 29, 2007 Autor Denunciar Share Postado Março 29, 2007 Dá a mesma coisa cara....Os mesmos erros! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 29, 2007 Denunciar Share Postado Março 29, 2007 Experimente então fazer:rs = DtUser.Database.OpenRecordset("SELECT * FROM tabela WHERE Nome='" & nome.Text & "'") If Not rs.EOF Then MsgBox "Usuário já existente", vbInformation, "Aviso" DtUser.Recordset.CancelUpdate Else DtUser.Recordset.Update End IfGraymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Março 30, 2007 Autor Denunciar Share Postado Março 30, 2007 Nada ainda, os mesmos erros..Será que não tem nenhuma propriedade, ou função que eu tenha que atribuir no meu Data?Se bem que eu já fucei em tudo que é possivel, alterei até o que não sabia e nada!!Mas, talvez eu não tenha mudado alguma coisa que falta....Vlww!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 31, 2007 Denunciar Share Postado Março 31, 2007 Qual o erro que dá? Em qual linha? E qual o código que você está usando?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Abril 2, 2007 Autor Denunciar Share Postado Abril 2, 2007 Qual o erro que dá? Em qual linha? E qual o código que você está usando?Abraços,GraymalkinVish véio.. eu dei print, só que não tá aparecendo para eu postar a imagem aqui.Mas dá um erro que o objeto não suporta essa propriedade ou metodo..na linha do If rs.eof thenE não entendi esse negócio do codigo..hehehe...vlww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Abril 4, 2007 Autor Denunciar Share Postado Abril 4, 2007 rs = DtUser.Database.OpenRecordset("SELECT * FROM Tb_Usuario WHERE Nome='" & Nome.Text & "'") MsgBox Nome If rs.EOF Then MsgBox "Usuário já existente", vbInformation, "Aviso" DtUser.Recordset.CancelUpdate Else If Sim.Value = True Then DtUser.Recordset("Administrador") = "S" ElseIf não.Value = True Then DtUser.Recordset("Administrador") = "N" End If DtUser.Recordset.Update habilitabotoes End If End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bruno Pola Postado Abril 9, 2007 Autor Denunciar Share Postado Abril 9, 2007 Num tem jeito mesmo?!aziuhaeiueAbraçooos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Bruno Pola
Então, tenho que fazer um sisteminha que tem login de usuários.
Só que não consigo fazer um controle certinho sobre os usuários cadastrados.
Fiz um recordset mas não deu muito certo não:
mas não funciona..
alguém pode me ajudar a clarear as idéias??
vlww
ele dá um erro de Type Mismatch, mas mesmo assim salva os dados na tabela...
Link para o comentário
Compartilhar em outros sites
22 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.