Jump to content
Fórum Script Brasil
  • 0

Senha De Bd No Access 2000:


Musashi_RS
 Share

Question

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

Edited by Musashi_RS
Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 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

Edited by Musashi_RS
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...