USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Problema de acesso em rede com DAO
Edmar Santos
não registrado
Postada em 13/05/2009 15:29 hs   
Amigos,
 
Não estou conseguindo desenvolver uma aplicação para rodar em rede (servidor / cliente). O que acontece: Estou utilizando DAO, e na aplicação que roda na estação cliente apresentou-se dois erros:
 
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.
 
Dai, usei o código abaixo:
 
Dim Arquivo, Conn, RS
 
Const ReadOnly = False
  Arquivo =
"\serversharearquivo.mdb"
 
Set Conn = CreateObject("DAO.DBEngine.35").Workspaces(0).OpenDatabase(Arquivo,,ReadOnly)
 
Set RS = Conn.OpenRecordset(SQL)
Mas mesmo assim, apresentou-se um erro informando que o controle ActiveX não pode criar o objeto solicitado. Já tentei o código abaixo, mas nada deu resultado.
 
Set Conn = DBEngine(0).OpenDatabase(Arquivo,,ReadOnly)
O que está errado?
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 13/05/2009 19:50 hs            
Primeiro colega vá em Project / References e selecione Microsoft DAO 3.6 object Library

depois tente abrir desta forma

Dim DB As Database
Caminho = "\\PC da Rede\SeuBD.MDB"
Set DB = Workspaces(0).OpenDatabase(Caminho)


as duas barras invertidas indicam que o banco está na rede, depois vem o nome do pc, a pasta onde está o banco de dados, e o banco entendeu.

TÓPICO EDITADO
 
Álvaro
Pontos: 2843
GUARULHOS
SP - BRASIL
ENUNCIADA !
Postada em 15/05/2009 09:20 hs            
Edmar conseguiu resolver esse problema?
Senão apenas completando o que o nosso amigo treze falou:
No General vc cria
Public DB As Database
Public Caminho As Recordset

No Form Load
Set DB = OpenDatabase("pc da redeseubanco.mdb")
Set Caminho = DB.OpenRecordset("suatabela", dbOpenTable)

Abraço e que DEUS te abençõe, espero poder ter te ajudado
Eu sou o Senhor, o DEUS de vocês;
eu os seguro pela mão e lhes digo;
Não fiquem com medo, pois eu os ajudo
Isaias 41:13
   
Edmar Santos
não registrado
ENUNCIADA !
Postada em 16/05/2009 16:21 hs   
Caros,

Eu faço o seguinte: tenho um arquivo .ini que o sistema lê no inicio com o caminho do banco de dados na rede. Mas ainda acontece o erro acima. Não sei como resolver...
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 16/05/2009 17:58 hs            
vale lembrar que a rede tem de estar montada

veja como faço a conexão utilizando um arquivo ini

primeiro em um módulo tenho a seguinte função para ler e escrever em um arquivo ini

Global DB As Database
'
Global REG As Recordset
'
' funções para escrever e ler arquivos ini
'
Declare Function WritePrivateProfileString Lib "kernel32" Alias _
"WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName _
As String) As Long
'
Declare Function GetPrivateProfileString Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
'
Public Ret As String
'
' sub função para gravar um arquivo ini
'
Public Sub WriteINI(FileName As String, Section As String, Key As String, Text As String)
WritePrivateProfileString Section, Key, Text, FileName
End Sub
'
' Função para ler um arquivo ini
'
Public Function ReadINI(FileName As String, Section As String, Key As String)
Ret = Space$(255)
retLen = GetPrivateProfileString(Section, Key, "", Ret, Len(Ret), FileName)
Ret = Left$(Ret, retLen)
ReadINI = Ret
End Function


e para abrir

Dim Caminho As String
Caminho = ReadINI("c:\configp3.ini", "programa", "caminho")
Set DB = Workspaces(0).OpenDatabase(Caminho)
Set REG = DB.OpenRecordset("tbarquivo", dbOpenDynaset)


veja como deve estar no arquivo ini

[programa]
caminho=\\pc da rede\pasta\bancodedados.mdb
TÓPICO EDITADO
 
Edmar Santos
não registrado
ENUNCIADA !
Postada em 25/05/2009 12:23 hs   
Galera,

Ainda continuo com o mesmo problema. O caminho do banco de dados está com as duas barras invertidas, tudo conforme acima, mas dá dois erros: que o Jet não pode acessar porque está em modo de leitura ([Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.) ou que o Active X não pode criar o objeto. O que ainda posso estar fazendo de errado? Outro detalhe: O servidor é windows Vista e o cliente é windows XP, tem alguma diferença? No setup estou configurando todas as dll's e ocx's para que o PC onde será instalado registre e etc....
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página