ToPronto N'Area Postado Abril 4, 2007 Denunciar Share Postado Abril 4, 2007 Noite pessoal, to denovo aqui, mais perdido que cego em tiroteio!oia só to querendo fazer uma conexão de loginé estaDim cnn As New ADODB.ConnectionDim rst As New ADODB.Recordset'Criando uma instância do objeto Connectioncnn.Open "provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Metta;Data Source=adriano\sqlexpress;" rst.Open "Funcionarios", cnn, adOpenStatic, adLockReadOnly If Txt(0).Text = "" Or Txt(1).Text = "" Then MsgBox "Informe o Nome e a Senha do usuário ! ", vbOKOnly + vbExclamation, "Acesso Negado" Txt(0).SetFocus Exit Sub End If rst.Index = "Primarykey" rst.Seek "=", Txt(0).Text While Not rst.EOF MsgBox "Usuário não cadastrado !!!! ", , "Login" Txt(0).SetFocus Wend If Not (rs![senha] = ((Txt(1).Text))) Then MsgBox " Senha Inválida !!! , tente novamente ", vbOKOnly, "Senha Incorreta" Txt(1).SetFocus Exit Sub Else 'NomeUsuario = rs![Funcionario] Unload FrmAber Unload Me MdiMetta.Show End If MdiMetta.ShowUnload FrmAberUnload Mequando eu trabalhava com o access ela funcionava normalzinho ai nesta acima já tem algumas alterações para o ado, porem não estao funcionandose alguém ver o erro que eu estou cometendo e puder me dar uma mao eu fico muito agradecido.o erro que esta dando agora é o seguinte"O provedor atual não oferece suporte para a interface necessaria à funcionalidade Índice."dai eu não acerto a ordem deste itensrst.Open "Funcionarios", cnn, adOpenStatic, adLockReadOnlyprq pelo o que eu vi é daqui o erro eu não sei qual deste dois (adOpenStatic, adLockReadOnly) tenho de alterar para ele aceitar a primarykey!Bom desde já muito obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 4, 2007 Denunciar Share Postado Abril 4, 2007 Use o FindFirst ao invés do Seek. Eu sempre usei o primeiro e nunca tive problemas.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ToPronto N'Area Postado Abril 4, 2007 Autor Denunciar Share Postado Abril 4, 2007 (editado) Use o FindFirst ao invés do Seek. Eu sempre usei o primeiro e nunca tive problemas.Abraços,GraymalkinEu tentei antes, mas na conexão ado não tem findfirst...Por isto faço com o seek, e o problema está aquirst.Open "Funcionarios", cnn, adOpenStatic, adLockReadOnlyele da um problema na primarikey!Mesmo assim valeu!Ontem eu tava dando uma olhada e achei um codigo de login via ado, vou testa-lo se der certo eu posto aqui!Abraços!Bom pra quem precisar ficou assim o codigo do login via adoEste codigo você coloca ele no command buttonOn Error GoTo TrataErro ' Erro ao localizar usuariosDim cnn As New ADODB.ConnectionDim rst As New ADODB.RecordsetDim Criterio As StringDim LoginOK As Boolean'Criando uma instância do objeto Connectioncnn.Open "provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Metta;Data Source=adriano\sqlexpress;"rst.Open "Funcionarios", cnn, adOpenDynamic, adLockReadOnlyLoginOK = FalseIf Txt(0).Text = "" Then MsgBox "Digite o Login do Usuário !", vbExclamation + vbCritical, " Campo Obrigatório" Txt(0).SetFocus Exit SubEnd IfIf Txt(1).Text = "" Then MsgBox "Digite a Senha do Usuário !", vbExclamation + vbCritical, " Campo Obrigatório" Txt(1).SetFocus Exit SubEnd If 'move-se para o primeiro registro rst.MoveFirst ' define o criterio para busca Criterio = "Login Like '" & Txt(0).Text & "'" ' inicia busca no recordset rst.Find Criterio, 0, adSearchForward'Agora imprimimos os codigos p/os clientes cujo país encontrado é USAWhile rst.EOFMsgBox "Usuario não encontrado APAGA O OTRO !"Txt(0).SetFocusExit SubWend NomeUsuario = rst.Fields("Funcionario") 'se encontrou, verificar a senha If rst.Fields("senha") = Txt(1).Text Then LoginOK = True 'definir que o usuário foi encontrado e a senha está OK Else ctr = ctr + 1 If ctr = 4 Then End Else xText = "Você tem mais" + Str(4 - ctr) + " chances" If ctr = 3 Then xText = "Esta é sua última chance !!" End If MsgBox "Senha incorreta !" & vbCrLf & _ xText, vbExclamation + vbCritical, "Senha não confere" Txt(1).Text = "" Txt(1).SetFocus SendKeys "{Home}+{End}" End If End Ifrst.CloseSet rst = NothingIf LoginOK = True ThenMdiMetta.ShowUnload MeEnd IfLvbLog_exit:Exit SubTrataErro:MsgBox err.Description, vbInformation, "Erro ao [TrataErro]" Editado Abril 4, 2007 por ToPronto N'Area Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 4, 2007 Denunciar Share Postado Abril 4, 2007 Use o FindFirst ao invés do Seek. Eu sempre usei o primeiro e nunca tive problemas.Abraços,GraymalkinEu tentei antes, mas na conexão ado não tem findfirst...Ops... eu que falei errado. É Find e não FindFirst. Com este funcionou?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ToPronto N'Area Postado Abril 5, 2007 Autor Denunciar Share Postado Abril 5, 2007 Use o FindFirst ao invés do Seek. Eu sempre usei o primeiro e nunca tive problemas.Abraços,GraymalkinEu tentei antes, mas na conexão ado não tem findfirst...Ops... eu que falei errado. É Find e não FindFirst. Com este funcionou?Abraços,Graymalkinestá funcionando perfitinho!Valeu! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ToPronto N'Area
Noite pessoal, to denovo aqui, mais perdido que cego em tiroteio!
oia só to querendo fazer uma conexão de login
é esta
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
'Criando uma instância do objeto Connection
cnn.Open "provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Metta;Data Source=adriano\sqlexpress;"
rst.Open "Funcionarios", cnn, adOpenStatic, adLockReadOnly
If Txt(0).Text = "" Or Txt(1).Text = "" Then
MsgBox "Informe o Nome e a Senha do usuário ! ", vbOKOnly + vbExclamation, "Acesso Negado"
Txt(0).SetFocus
Exit Sub
End If
rst.Index = "Primarykey"
rst.Seek "=", Txt(0).Text
While Not rst.EOF
MsgBox "Usuário não cadastrado !!!! ", , "Login"
Txt(0).SetFocus
Wend
If Not (rs![senha] = ((Txt(1).Text))) Then
MsgBox " Senha Inválida !!! , tente novamente ", vbOKOnly, "Senha Incorreta"
Txt(1).SetFocus
Exit Sub
Else
'NomeUsuario = rs![Funcionario]
Unload FrmAber
Unload Me
MdiMetta.Show
End If
MdiMetta.Show
Unload FrmAber
Unload Me
quando eu trabalhava com o access ela funcionava normalzinho ai nesta acima já tem algumas alterações para o ado, porem não estao funcionando
se alguém ver o erro que eu estou cometendo e puder me dar uma mao eu fico muito agradecido.
o erro que esta dando agora é o seguinte
"O provedor atual não oferece suporte para a interface necessaria à funcionalidade Índice."
dai eu não acerto a ordem deste itens
rst.Open "Funcionarios", cnn, adOpenStatic, adLockReadOnly
prq pelo o que eu vi é daqui o erro eu não sei qual deste dois (adOpenStatic, adLockReadOnly) tenho de alterar para ele aceitar a primarykey!
Bom desde já muito obrigado!
Link para o comentário
Compartilhar em outros sites
4 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.