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

Senha De Bd No Access 2000:


Musashi_RS

Pergunta

Olá, coloquei uma senha em meu banco de dados pelo Access 2000. Porém quando vou acess´-lo via ADO, mesmo colocando o passqord e usuário, ele dá a seguinte menságem:

imagemra0.gif

Runt-time error -2147217843
Não é possível iniciar o aplicativo. O arquivo de informações do grupo de trabalho está faltando ou foi aberto em modo exclusivo por um outro usuário.

Alguém pode me ajudar a colocar uma senha no BD e acessá-lo via ADO? ;)

Vlw

Editado por Musashi_RS
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

No Módulo:

Global BD As ADODB.Connection

No formulário de cadastro de clientes:

'seção general

Dim WithEvents TB As ADODB.Recordset

Private Sub Form_Load()

Set BD = New ADODB.Connection

BD.CursorLocation = adUseClient

BD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False"

BD.Open

Set TB = New ADOR.Recordset

TB.Open "SELECT Nome, Endereco, Bairro, Cidade, CEP, Estado, Fone FROM TClientes ORDER BY Nome", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False", adOpenStatic, adLockOptimistic

ExibirDados

End Sub

Public Sub ExibirDados()

TxtNome.Text = ""

TxtEndereco.Text = ""

TxtBairro.Text = ""

TxtCidade.Text = ""

TxtCEP.Text = ""

TxtEstado.Text = ""

TxtFone.Text = ""

On Error Resume Next

TxtNome.Text = TB!Nome

TxtEndereco.Text = TB!Endereco

TxtBairro.Text = TB!Bairro

TxtCidade.Text = TB!Cidade

TxtCEP.Text = TB!CEP

TxtEstado.Text = TB!Estado

TxtFone.Text = TB!Fone

On Error GoTo 0

LblTotal.Caption = TB.AbsolutePosition & "/" & TB.RecordCount

End Sub

Formulário cadastro de vendas

'seção general

Dim WithEvents TB As ADODB.Recordset

Private Sub Form_Load()

'ABRINDO A CONEXÃO COM A TABELA TVENDAS

Set BD = New ADODB.Connection

BD.CursorLocation = adUseClient

BD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False"

'BD.Open

Set TB = New ADOR.Recordset

TB.Open "SELECT Codigo, NomeCliente, DataVenda, Produto, Valor FROM TVendas ORDER BY Codigo", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False", adOpenStatic, adLockOptimistic

'ABRINDO A CONEXÃO COM A TABELA TCLIENTES

Set BD = New ADODB.Connection

BD.CursorLocation = adUseClient

BD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False"

'BD.Open

Set TB = New ADOR.Recordset

TB.Open "SELECT Nome FROM TClientes ORDER BY Nome", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False", adOpenStatic, adLockOptimistic

'MOSTRANDO OS NOMES NO COMBO

Do Until TB.EOF

CboNome.AddItem TB.Fields("Nome")

TB.MoveNext

Loop

End Sub

Private Sub BtnSalvar_Click()

On Error GoTo Salvar

Set BD = New ADODB.Connection

BD.CursorLocation = adUseClient

BD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False"

'BD.Open

Set TB = New ADOR.Recordset

TB.Open "SELECT Codigo, NomeCliente, DataVenda, Produto, Valor FROM TVendas ORDER BY Codigo", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False", adOpenStatic, adLockOptimistic

'Confirmação para salvar geristro

If MsgBox("Desejá salvar as informações?", vbYesNo + vbQuestion, "Salvar venda!") = vbYes Then

With TB

.AddNew

!Codigo = TxtCodigo.Text

!NomeCliente = CboNome.Text

!DataVenda = TxtData.Text

!Produto = TxtProduto.Text

!Valor = MskValor.Text

.Update

End With

Else

Exit Sub

End If

Exit Sub

Salvar:

If Err.Number = -2147217887 Then

MsgBox "Registro duplicado!", vbInformation, "Novo!"

TxtNome.SetFocus

Exit Sub

Else

MsgBox "Erro ao adicionar novo registro!", vbInformation, "Novo!"

'TxtNome.SetFocus

Exit Sub

End If

End Sub

Formulário consulta de Vendas

'seção general

Dim WithEvents TB As ADODB.Recordset

Private Sub Form_Load()

'ABRINDO A CONEXÃO COM A TABELA TVENDAS

Set BD = New ADODB.Connection

BD.CursorLocation = adUseClient

BD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False"

'BD.Open

Set TB = New ADOR.Recordset

TB.Open "SELECT Nome FROM TClientes ORDER BY Nome", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False", adOpenStatic, adLockOptimistic

'MOSTRANDO OS NOMES NO COMBO

TB.MoveFirst

Do Until TB.EOF

CboNomePesquisa.AddItem TB.Fields("Nome")

TB.MoveNext

Loop

End Sub

Editado por Musashi_RS
Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe, me houve um engano.

Ta, mas entrei nesse site e dei uma olhada nas strings... Elas vão funcionar para qual versão do Access?

Então minha string ficria assim?

Set BD = New ADODB.Connection

BD.CursorLocation = adUseClient

BD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BDPaula.mdb;Persist Security Info=False; Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\BDPaula.mdb;Exclusive=1;Uid=admin;Pwd=123;"

'BD.Open

Está correto o modo que eu useia conesão?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Que esquem de workgroup é esse?

Bom, mudei de estratégia. Criei o banco de dados pelo Access 2003 e converti para o formato 2000. No entanto eu ainda não consegui colocar a senha sem que haja erro.

a rotina de conexão é essa:

Public Sub AbrirBanco()

'Abre a conexão com o banco de dados

Set BANCO = New ADODB.Connection

BANCO.CursorLocation = adUseClient

BANCO.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\IPR\DB\DB.mdb;User Id=Admin;Password=123;Persist Security Info=False"

BANCO.Open

End Sub

Vlw

Link para o comentário
Compartilhar em outros sites

  • 0

DEU CERTO!

Finalmente...

Utilizei a connection string para o banco de dados com senha apenas, na seção OLE DB.

No entanto, reparei que existe outra connection informando também o usuário. pergunto, é necessário? Se eu não informar o usuário, quais os possíveis problemas que podem ocorrer?

Outra coisa, que esquema do workgroup que você quis dizer?

Vlw pela ajuda

Link para o comentário
Compartilhar em outros sites

  • 0

então, ele funcionou só com senha, porque acho q você não setou usuario, ne??

se você for ver, no access, você tem a opcao de por uma senha geral pro banco de dados (Ferramentas -> Segurança -> Definir senha do banco de dados). foi aqui q você foi certo??

nesse caso ele protege o banco por senha. alias se não me engano ele vai proteger o access por senha e não um banco especifico. você definindo essa senha, ele vai te pedir pra digitar senha pra qualquer .mdb q você tentar abrir nesse pc (acho).

agora se você entrar em Ferramentas -> Segurança -> Contas de usuários, ai sim você pode definir varios usuarios, com permissoes diferentes e etc. ai nesse caso sim você usaria aquela outra string.

esse negocio do workgroup, nem lembro como faz, e tb nem sei direito o q é. procurei aqui no meu access 2003 e não achei, lembro q no 2000 eu conseguia fazer.

se você for ver la no site tem o exemplo de conexao pra workgroup. sei q o workgroup cria um arquivo a parte q funciona em conjunto com o .mdb. acho q ele da mais seguranca, não sei, sei q tem a ver com usuario e senha.

Link para o comentário
Compartilhar em outros sites

  • 0
então, ele funcionou só com senha, porque acho q você não setou usuario, ne??

se você for ver, no access, você tem a opcao de por uma senha geral pro banco de dados (Ferramentas -> Segurança -> Definir senha do banco de dados). foi aqui q você foi certo??

nesse caso ele protege o banco por senha. alias se não me engano ele vai proteger o access por senha e não um banco especifico. você definindo essa senha, ele vai te pedir pra digitar senha pra qualquer .mdb q você tentar abrir nesse pc (acho).

Isso mesmo, não setei usuário. Exatamente, foi lá que coloquei a senha pro banco.

Olha, a princípio, essa senha so protegeu o meu banco mesmo, os outros .mdbs abriram normalmente.

falou :rolleyes:

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...