• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

duduml

Como fazer login com uma accdb em VB 08

46 mensagens neste tópico

Boas pessoal!

antes de mais peço desculpa por colocar o tópico em VB.net, mas não vi o Vb 08....

Bem, é o seguinte tenho vindo a desenvolver um programa de Gestão de Stocks e agora gostava de colocar um login para o utilizador e se possível, que dê para inscrever novos utilizadores...

Portanto, agradecia que alguém me ajuda-se a fazê-lo ou se tiverem algum exemplo já feito ou tutorial...agradecia!

obrigado! ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, como ninguém respondeu resolvi inventar um bocado...e fiz através do datagridview!

só me falta uma coisinha "simples" que eu não sei fazer...

Queria saber se alguém me sabe dizer como posso ver se os dados inseridos numa textbox são iguais aos dados inseridos numa datagridview de outro form???

ou seja quando clico "ok" fiz esta código para dar ou não acesso ao programa:

 Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        If UtilizadorTextBox.Text = "administrador" And SenhaTextBox.Text = "admin" Then
            MsgBox("Login bem sucedido!", MsgBoxStyle.Information, "Login")
            limpar()
            Me.Hide()
            MDIParent1.Show()
        End If
        'aqui surge a minha dúvida
        If UtilizadorTextBox.Text = (o tal campo do datagridview) and senhautilizador.textbox.text = (o outro tal campo do datagridview) Then
            MsgBox("Login bem sucedido!", MsgBoxStyle.Information, "Login")
            limpar()
            Me.Hide()
            MDIParent1.Show()
        Else
            If validar_dados() = False Then
                MsgBox("Login mal sucedido!", MsgBoxStyle.Exclamation, "Erro no login")
            End If
        End If
    End Sub

aguardo respostas/sugestões!

Obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

antes de mais peço desculpa por colocar o tópico em VB.net, mas não vi o Vb 08....

VB.NET é desde a versão 2002 até à 2008 (e irá servir também para a 2010) ;)

Portanto, agradecia que alguém me ajuda-se a fazê-lo ou se tiverem algum exemplo já feito ou tutorial...agradecia!

Procura no fórum pois tens alguns exemplos ... como este: http://www.portugal-a-programar.pt/index.php?showtopic=27402

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok!

Obrigado pela resposta!

;)

vou ver se resolvo o meu problema e depois posto aqui! pois tenho a certeza que irá ajudar muita gente!

Em relação ao pedido de desculpa pela localização do tópico, eu sei é assim...mas poderia haver algo mais concreto ou especifico que eu não tivesse visto...lol

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, tenta resolver e diz se está resolvido ou não ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois mas esse tópico não resolve a minha dúvida...:S

dá-me outra solução...e a minha BD nem se quer esta ligada em SQL....é mesmo accdb

.. ;)

não dá mesmo para aproveitar nada....o que eu pretendia mesmo saber era apenas como ver se um dado contido numa textbox é igual ao contido no datagridview que esta noutro form...

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hum....

ok.

vou ver se me safo....ainda estou muito cru nesta parte...

Obrigado pela ajuda!

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já modifiquei este tercho...

e quando tento utilizar um utilizador de lá da-me este erro que abaixo mostro:

nesta linha:

Dim connection As New OleDbConnection(myConnectionString)

ERRO: An OLE DB Provider was not specified in the ConnectionString.  An example would be, 'Provider=SQLOLEDB;'.

______________________

código:

Dim SQL As String = "SELECT count(*) From utilizadores where utilizador = @utilizador and senha = @password;"

        Dim myConnectionString As String = _
        "Data Source=.\OleDbEXPRESS;AttachDbFilename='C:\acesso.mdb';" & _
        ";Integrated Security=True;User Instance=True"

        Dim connection As New OleDbConnection(myConnectionString)

        Dim command As New oledbCommand(SQL, connection)

        command.Parameters.Add("@utilizador", OleDbType.VarChar).Value = UtilizadorTextBox.Text

        command.Parameters.Add("@password", OleDbType.VarChar).Value = SenhaTextBox.Text

        connection.Open()



        Dim x = command.ExecuteScalar

        MsgBox(x)
        If x > 0 Then
            MsgBox("Login Efectuado com sucesso")
        Else

        End If

        connection.Close()
        connection = Nothing
        command = Nothing

parece que já faltou mais(acho eu)....podem-me dizer o que é o erro???

e já agora, expliquem-me o que faz este pedaço de código:

& ";Integrated Security=True;User Instance=True"

Obrigado!

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens onde postar isso para dar uma vista de olhos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim já está melhor ;)

Duas coisas para começar:

1) A connection string é diferente, porque essa é mesmo para SQL. Deves ver no link que te mostrei e é algo como:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;

2) No Access deves definir os parâmetros desta forma (embora assim também funcione mas não é correcto)

Dim SQL As String = "SELECT count(*) From utilizadores where utilizador = ? and senha = ?;"

Lá em baixo deixas como está.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem me parecia..

""Data Source=.\OleDbEXPRESS;AttachDbFilename='C:\acesso.mdb"

Isto não me estava a soar nada bem para access.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hum....ok.

Desculpa-la estas dúvidas básicas talvez para ti, mas eu cá não estou nada dentro do assunto...:S

vou modificar isso e ver se dá certo então...;)

PS: desculpa-la o facto de não usar os códigos devidos nas mensagens, mas é o habito!(estou a tentar melhorar) ainda sou novo aqui! aliás, aqui e em todos os fóruns! inscrevi-me aqui porque sempre que pesquisei algo, cá estava a solução!:)

xD

parabéns pelo excelente trabalho e obrigado pela disponibilidade e ajuda!

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PS: desculpa-la o facto de não usar os códigos devidos nas mensagens, mas é o habito!(estou a tentar melhorar) ainda sou novo aqui! aliás, aqui e em todos os fóruns! inscrevi-me aqui porque sempre que pesquisei algo, cá estava a solução!:)

xD

Não há problema ... vai aos poucos! ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, já mudei e dá-me 2 erros ao inserir a localização da "myConnectionString"...

1º  erro (parte assinalada a negrito): " Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;" ---> end of statement expected

2º erro (parte assinalada a negrito): "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;"---> sintax error

e claro da um terceiro erro, lógico...que diz que o myconnectionstring não esta declarado...

Dim SQL As String = "SELECT count(*) From utilizadores where utilizador = ? and senha = ?;"

        Dim myConnectionString As String = _
        Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccess2007file.accdb;Persist Security Info=False;

        Dim connection As New OleDbConnection(myConnectionString)

        Dim command As New oledbCommand(SQL, connection)

        command.Parameters.Add("@utilizador", OleDbType.VarChar).Value = UtilizadorTextBox.Text

        command.Parameters.Add("@password", OleDbType.VarChar).Value = SenhaTextBox.Text

        connection.Open()



        Dim x = command.ExecuteScalar

        MsgBox(x)
        If x > 0 Then
            MsgBox("Login Efectuado com sucesso")
        Else

        End If

        connection.Close()
        connection = Nothing
        command = Nothing

esta difícil...;)

lol

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ups!

não...:S

xD

já esta correcto! vou ver se funciona....

Obrigado!;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pronto, já passei essa fase...lol

agora quando vai abrir a conexão dá este erro: "C:\myFolder\myAccess2007file.accdb' não é um caminho válido. Verifique se o caminho foi introduzido correctamente e se está ligado ao servidor onde reside o ficheiro"

essa parte da directoria nao percebi muito bem qual tenho de por...como é?

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens que por o caminho para a tua base de dados...ou por outras palavras a path..ou seja...ela nao esta a encontrar o ficheiro

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lool

pois, que pergunta estupida....já tinha la chegado...a ansiedade de ver isto a dar faz-me cometer erros banais...:S

vou ver se dá,...

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pronto, já dá tudo direitinho!;)

obrigado pela ajuda!

fica aqui o código final para quem precisar, pois sei que vai acontecer!

lol

Dim ole As String = "SELECT count(*) From utilizadores where utilizador = ? and senha = ?;"

        Dim myConnectionString As String = _
        "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\Eduardo.DUDUML\Os meus documentos\Acesso.accdb;Persist Security Info=False;"

        Dim connection As New OleDbConnection(myConnectionString)

        Dim command As New OleDbCommand(ole, connection)

        command.Parameters.Add("@utilizador", OleDbType.VarChar).Value = UtilizadorTextBox.Text

        command.Parameters.Add("@password", OleDbType.VarChar).Value = SenhaTextBox.Text

        connection.Open()



        Dim x = command.ExecuteScalar

        If x = 0 Then
            MsgBox("Login efectuado com sucesso!", MsgBoxStyle.Information, "Login")
            limpar()
            Me.Hide()
            MDIParent1.Show()
        End If

        connection.Close()
        connection = Nothing
        command = Nothing

Obrigado a todos!!!

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alto!!!

há algo aqui errado...mesmo que os dados estejam mal faz o login...:S

hum....vou ver o erro e volto a postar o código bem!

CUMPS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora