Ir para conteúdo
Fórum Script Brasil
  • 0

Não Consigo Conectar Via Ado


ToPronto N'Area

Pergunta

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

  • 0
Use o FindFirst ao invés do Seek. Eu sempre usei o primeiro e nunca tive problemas.

Abraços,

Graymalkin

Eu tentei antes, mas na conexão ado não tem findfirst...

Por isto faço com o seek, e o problema está aqui

rst.Open "Funcionarios", cnn, adOpenStatic, adLockReadOnly

ele 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 ado

Este codigo você coloca ele no command button

On Error GoTo TrataErro ' Erro ao localizar usuarios

Dim cnn As New ADODB.Connection

Dim rst As New ADODB.Recordset

Dim Criterio As String

Dim LoginOK As Boolean

'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, adOpenDynamic, adLockReadOnly

LoginOK = False

If Txt(0).Text = "" Then

MsgBox "Digite o Login do Usuário !", vbExclamation + vbCritical, " Campo Obrigatório"

Txt(0).SetFocus

Exit Sub

End If

If Txt(1).Text = "" Then

MsgBox "Digite a Senha do Usuário !", vbExclamation + vbCritical, " Campo Obrigatório"

Txt(1).SetFocus

Exit Sub

End 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 é USA

While rst.EOF

MsgBox "Usuario não encontrado APAGA O OTRO !"

Txt(0).SetFocus

Exit Sub

Wend

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 If

rst.Close

Set rst = Nothing

If LoginOK = True Then

MdiMetta.Show

Unload Me

End If

LvbLog_exit:

Exit Sub

TrataErro:

MsgBox err.Description, vbInformation, "Erro ao [TrataErro]"

Editado por ToPronto N'Area
Link para o comentário
Compartilhar em outros sites

  • 0
Use o FindFirst ao invés do Seek. Eu sempre usei o primeiro e nunca tive problemas.

Abraços,

Graymalkin

Eu 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

Link para o comentário
Compartilhar em outros sites

  • 0
Use o FindFirst ao invés do Seek. Eu sempre usei o primeiro e nunca tive problemas.

Abraços,

Graymalkin

Eu 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

está funcionando perfitinho!

Valeu!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...