CONEXAO COM ACCESS
Galera, banco de dados Access 2007 .accdb no servidor. Um segundo sistema fazendo conexão com o bd dá o seguinte erro: [Ô]Não foi possÃvel usar. O arquivo já está em uso.[Ô] Como faço pra usar o Access com vários usuários simultaneos?
Com conexões ADO, sem problemas. Mas se vc abrir o ACESS e deixar o arquivo com alguma tabela aberta, ou alguma outra operação exclusiva, vai dar esse erro.
Putz cara, até veergonha perguntar. Mas como defino sobre a operação exclusiva? Vc diz nos recordsets? Ou isso é definido na string de conexão? Pois o erro, quando o segundo usuário abre o programa em outra máquina, está dando já na string de conexão.
posta sua string de conexão para vermos
[Ô]Provider=Microsoft.ACE.OLEDB.12.0;data Source = K:\bdSistemaPA\bdPA.accdb;Jet OLEDB:Database Password=1234567[Ô]
Putz, MARCELO-TREZE, meu xará. Agora que vc falou eu percebi que tava faltando isso aqui [Ô]Persist Security Info=False[Ô]. Será a causa do problema?
Não. [Ô]Persist Security Info=False[Ô], informa ao provedor(a conexão ADO) que a autenticação deve ser o usuário e senha que vc está informando na connectionstring. Se fosse [Ô]True[Ô], a conexão usaria como autenticação o seu usuário do windows.
posta toda string de conexão ou seja a função de conexão completa
Uai?? Fora isso
Set cnBasePa = New ADODB.Connection
cnBasePa.Open [Ô]Provider=Microsoft.ACE.OLEDB.12.0;data Source = K:\bdSistemaPA\bdPA.accdb;Persist Security Info=False;Jet OLEDB:Database Password=1234567[Ô]
Só os recorset mesmo. Mas já ta travando aÃ.
Set cnBasePa = New ADODB.Connection
cnBasePa.Open [Ô]Provider=Microsoft.ACE.OLEDB.12.0;data Source = K:\bdSistemaPA\bdPA.accdb;Persist Security Info=False;Jet OLEDB:Database Password=1234567[Ô]
Só os recorset mesmo. Mas já ta travando aÃ.
Você pode até conseguir, mas corre o risco de corromper o Banco.
Coloca isso antes de abrir a conexão para vê se resolve:
O Banco access não é indicado para ser usado em servidor. Para contornar sua limitação, deixe o banco sempre fechado. Abre a conexão, faz as operações (Listar, incluir, editar, etc) e fecha o banco. Isso resolve uns 80 % dos problemas. Para maior segurança, você pode criar um arquivo .txt ou uma chave no Registro do win que retorne o status do Banco (Fechado, Aberto). Então você faz a checagem em um timer, para aguardar o banco ser fechado para abri-lo.
Anexo um exemplo de como abrir o banco, pegar os dados e fechar o banco. Testa no servidor.
Coloca isso antes de abrir a conexão para vê se resolve:
CnBasePa.Mode = adModeReadWrite
O Banco access não é indicado para ser usado em servidor. Para contornar sua limitação, deixe o banco sempre fechado. Abre a conexão, faz as operações (Listar, incluir, editar, etc) e fecha o banco. Isso resolve uns 80 % dos problemas. Para maior segurança, você pode criar um arquivo .txt ou uma chave no Registro do win que retorne o status do Banco (Fechado, Aberto). Então você faz a checagem em um timer, para aguardar o banco ser fechado para abri-lo.
Anexo um exemplo de como abrir o banco, pegar os dados e fechar o banco. Testa no servidor.
Tópico encerrado , respostas não são mais permitidas