VB6 - BANCO .MDB JA ESTA EM USO
Boa tarde amigos...
Estou utilizando um banco de dados .mdb, porem quando abro em 2 pcs ao mesmo tempo, usando o mesmo .mdb da erro dizendo que o arquivo ja esta em uso. tem alguma rotina ou alteracao para permitir usar o banco em 2 pcs ao mesmo tempo? da erro e aponta para a linha abaixo:
andei pesquisando mas ate agora nao achei nada a respeito, vou continuar tentando...
mas se alguem tiver alguma ideia agradeco..
obrigado
Estou utilizando um banco de dados .mdb, porem quando abro em 2 pcs ao mesmo tempo, usando o mesmo .mdb da erro dizendo que o arquivo ja esta em uso. tem alguma rotina ou alteracao para permitir usar o banco em 2 pcs ao mesmo tempo? da erro e aponta para a linha abaixo:
con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & caminho
andei pesquisando mas ate agora nao achei nada a respeito, vou continuar tentando...
mas se alguem tiver alguma ideia agradeco..
obrigado
LUIS
Utilizo um módulo onde parametrizei a conexão da seguinte maneira.
Set conexao = New ADODB.Connection
With conexao
.Provider = [Ô]Microsoft.Jet.OLEDB.4.0[Ô]
.ConnectionString = [Ô]Data Source=[Ô] & bancodedados & [Ô];Jet OLEDB;[Ô]
.Open
End With
Utilizo o banco de dados em rede, onde carrego de um arquivo INI o endereço do banco [Ô]\\servidor\pasta\banco.mdb[Ô].
Nunca tive problemas deste tipo.
Utilizo um módulo onde parametrizei a conexão da seguinte maneira.
Set conexao = New ADODB.Connection
With conexao
.Provider = [Ô]Microsoft.Jet.OLEDB.4.0[Ô]
.ConnectionString = [Ô]Data Source=[Ô] & bancodedados & [Ô];Jet OLEDB;[Ô]
.Open
End With
Utilizo o banco de dados em rede, onde carrego de um arquivo INI o endereço do banco [Ô]\\servidor\pasta\banco.mdb[Ô].
Nunca tive problemas deste tipo.
opa
pois eh, estranho, agora poco deu q nao foi possivel usar porque o arquivo ja esta em uso.
abaixo o codigo q faz a conexao:
mais abaixo essa conexao eh fechada, algumas rotinas no sistema abrem e fecham, mas utilizam os mesmos parametros.
pois eh, estranho, agora poco deu q nao foi possivel usar porque o arquivo ja esta em uso.
abaixo o codigo q faz a conexao:
Dim caminho As String
[ô]verifica se já há uma instância do programa sendo executado
If App.PrevInstance = True Then
Dim Form As Form
For Each Form In Forms
Unload Form
Set Form = Nothing
Next Form
End
End If
[ô]define caminho para base de dados, help e imagens
caminho = ReadINI([Ô]Geral[Ô], [Ô]Caminho[Ô], App.Path & [Ô]\Config.ini[Ô])
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & caminho
[ô]Objeto de acesso à tabela Products
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.Open [Ô]SELECT * [Ô] & _
mais abaixo essa conexao eh fechada, algumas rotinas no sistema abrem e fecham, mas utilizam os mesmos parametros.
Companheiro, seu erro é o run time error 3051 ?
Caso sim, veja o seguinte...
Se for windows vista/seven, verifique usuarios..
outra possibilidade é no regedit..
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5, ou 4.0, e aumente a chave MaxLocksPerFile , para 15000 por exemplo..
deve resolver
Caso sim, veja o seguinte...
Se for windows vista/seven, verifique usuarios..
outra possibilidade é no regedit..
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5, ou 4.0, e aumente a chave MaxLocksPerFile , para 15000 por exemplo..
deve resolver
opa
amigo, to testando no windows xp, essas chaves no registro estao com o valor [Ô]251c[Ô] sao do tipo REG_DWORD...
altera-las para 1500?
alterei mas nao resolveu, acho que tem q alterar de outra forma certo?
amigo, to testando no windows xp, essas chaves no registro estao com o valor [Ô]251c[Ô] sao do tipo REG_DWORD...
altera-las para 1500?
alterei mas nao resolveu, acho que tem q alterar de outra forma certo?
Luis
Como estão as questões de acesso a pasta compartilhada?
Como estão as questões de acesso a pasta compartilhada?
acesso completo, sem senha, nem restricao...
mto estranho, andei pesquisando e vi q tem algo sobre definir o .mdb como compartilhado, mas nao encontrei isso no acess 2007...
mto estranho, andei pesquisando e vi q tem algo sobre definir o .mdb como compartilhado, mas nao encontrei isso no acess 2007...
Posso estar sendo ingênuo, mas qts usuários se conectam ao mesmo tempo ao recurso na rede?
você disse que tá usando XP, então... http://support.microsoft.com/kb/314882/pt-br
mesmo assim vou continuar buscando na net.
QUanto ao [Ô]definir o .mdb[Ô] tenta editar as propriedades diretamente do arquivo MDB (propriedades - compartilhamento)
você disse que tá usando XP, então... http://support.microsoft.com/kb/314882/pt-br
mesmo assim vou continuar buscando na net.
QUanto ao [Ô]definir o .mdb[Ô] tenta editar as propriedades diretamente do arquivo MDB (propriedades - compartilhamento)
na verdade estou so com o servidor e mais um pc.
achei a opcao de modo compartilhado, e ja esta marcada....nao mencionei acima, mas tenho uma rotina em vb que fica consultando o banco de dados de tempo em tempo....com um timer, entao creio que essas consulta caiam no mesmo tempo em certos momentos, mas nao sei se eh isso que esta implicando.
achei a opcao de modo compartilhado, e ja esta marcada....nao mencionei acima, mas tenho uma rotina em vb que fica consultando o banco de dados de tempo em tempo....com um timer, entao creio que essas consulta caiam no mesmo tempo em certos momentos, mas nao sei se eh isso que esta implicando.
Luis...
Qual a forma de conexão dessa rotina ?
Qual a forma de conexão dessa rotina ?
para deixar mais explicado, abaixo esta o codigo do timer que faz a consulta no banco... nao entendo muito, mas acho que o problema eh o excesso de consultas no banco, pois tenho 8 timers executando essa consulta a cada segundo, mudando apenas o campo equip.text
e carregando o retorno em outros textbox.
e carregando o retorno em outros textbox.
Private Sub Timer10_Timer()
Dim caminho As String
[ô]verifica se já há uma instância do programa sendo executado
If App.PrevInstance = True Then
Dim Form As Form
For Each Form In Forms
Unload Form
Set Form = Nothing
Next Form
End
End If
[ô]define caminho para base de dados, help e imagens
caminho = ReadINI([Ô]Geral[Ô], [Ô]Caminho[Ô], App.Path & [Ô]\Config.ini[Ô])
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & _
[Ô]Data Source=[Ô] & caminho
[ô]Objeto de acesso à tabela Products
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.Open [Ô]SELECT * [Ô] & _
[Ô]FROM alarme1 [Ô] & _
[Ô]WHERE equipamento = [ô][Ô] & equip5.Text & [Ô] [ô] and data = [ô][Ô] & dataatual.Text & [Ô][ô] and hora = [ô][Ô] & principal.horaatual.Caption & [Ô][ô][Ô] & _
[Ô]ORDER BY Código;[Ô], con, adOpenKeyset, adLockReadOnly
[ô]Rotina para alimentar o ComboBox
Do While Not rs1.EOF
statusacao5.Text = rs1.Fields([Ô]acao[Ô])
Timer9.Enabled = True
[ô] Combo1.ItemData(Combo1.NewIndex) = rs1.Fields([Ô]codigo[Ô])
rs1.MoveNext
Loop
con.Execute [Ô]delete * from alarme1 where equipamento = [ô][Ô] & equip5.Text & [Ô] [ô] and data = [ô][Ô] & dataatual.Text & [Ô][ô] and hora = [ô][Ô] & principal.horaatual.Caption & [Ô][ô][Ô]
[ô]Fechar e descarregar os objetos de acesso da memória
rs1.Close
Set rs1 = Nothing
con.Close
Set con = Nothing
End Sub
Tópico encerrado , respostas não são mais permitidas