COLOCAR O SISTEMA EM REDE...

MOREIRA 20/12/2006 16:59:19
#191258
Boa tarde a todos! estou quase lelé da cuca... nao sei o q fazer +...
Quero colocar em rede.... Alquem pode me ajudar ??

Meu DB é Access 2003
Conexao ADO

tenho esse codigo na estação "Num Modulo". e quando rodo o sistema da um error "NAO FOI POSSIVEL ENCONTRAR ISAM DISPONIVEL." AI MARCA ESTE PONTO -->.OPEN

Option Explicit
Public Conexao As ADODB.Connection
----------------------------------------------
Public Vgb_Drive As String
Public Vgb_Filial As String
Public Vgb_CodFilial As String
Public strVgb_ConexaoSql As String
Public Vgb_ConexaoSql As ADODB.Connection

'Leitura do arquivo INI
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 Sub Main()
'On Error GoTo Trata_Erro

Dim strVgb_ConexaoSql As String

Vgb_Drive = fugLeituraIni("DRIVES", "DRVIMP") ' Drive p/ impressão
Vgb_Filial = fugLeituraIni("FILIAL", "DSCFILIAL") ' Descrição da Filial em operação
Vgb_CodFilial = fugLeituraIni("FILIAL", "CODFILIAL") ' Código da Filial em operação
strVgb_ConexaoSql = fugLeituraIni("CONEXAO", "CONEXAO") ' String p/ Conexao no SQL Server
'----------------------------------------------------
'Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= \ecepcao\asbra\banco\SistemaAsbra.mdb; Jet Oledb:Database Password=123"
'----------------------------------------------------
Set Vgb_ConexaoSql = New ADODB.Connection
If Vgb_ConexaoSql.State = adStateClosed Then
With Vgb_ConexaoSql
.ConnectionString = strVgb_ConexaoSql
.CursorLocation = adUseClient
.ConnectionTimeout = 60
.Open
End With
End If

MDI_Principal.Show

Exit Sub
'Trata_Erro:
' Gerar Log de Erro
' MsgBox " Problemas na Conexão " & Err.Description
'End
End Sub

Function fugLeituraIni(strSecao As String, strItem As String) As String

'Função para leitura de parà¢metros do arquivo INI
Dim vlst_w As String
Dim vlin_i As Integer
Dim vlsRetIni As Integer

On Error GoTo Trataerro
vlin_i = 400 'Tamanho máximo da linha de entrada
vlst_w = Space$(vlin_i)

'Leitura dos parà¢metros para conexão

GetPrivateProfileString strSecao, strItem, "", vlst_w, vlin_i, "C:\Asbra\Teste.ini"
fugLeituraIni = Mid(Trim(vlst_w), 1, Len(Trim(vlst_w)) - 1)

Exit Function
Trataerro:
MsgBox "ERRO LEITURA INI"
'End
End Function

Public Function Centraliza(frm As Form) As String
'Centralizando os forms
If frm.MDIChild = True Then
frm.Move (Screen.Width - frm.Width) / 2, (Screen.Height - frm.Height) / 2 - 1000
frm.KeyPreview = True
Else
frm.Move (Screen.Width - frm.Width) / 2, (Screen.Height - frm.Height) / 2
frm.KeyPreview = True
End If

End Function


Este ak está no arquivo Teste.ini
[FILIAL]
DSCFILIAL = "Teste"
CODFILIAL = "0001"

[DRIVES]
DRVIMP = "Caminho relat"
DRVEXE = "Caminho exe"

[IDIOMA]
IDIOMA = "BR"

[CONEXAO]
Conexao = "Provider= Microsoft.Jet.OLEDB.4.0;Data Source= \ecepcao\asbra\banco\SistemaAsbra.mdb;Jet Oledb atabase Password=123"


MOREIRA 20/12/2006 17:32:02
#191277
sim.. a pasta esta compartilhada .. já testei manualmente..na barra de endereco....\ecepcao\asbra\banco\sistemaasbra.mdb.... o banco abre normalmente...
USUARIO.EXCLUIDOS 20/12/2006 17:54:04
#191285
Resposta escolhida
'gravar 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
'recuperar ini
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 Function ReadINI(Section As String, Key As String, FileName As String)
'Filename=nome do arquivo ini
'section=O que esta entre []
'key=nome do que se encontra antes do sinal de igual
Dim retlen As String
Dim Ret As String
Ret = String$(255, 0)
retlen = GetPrivateProfileString(Section, Key, "", Ret, Len(Ret), FileName)
Ret = Left$(Ret, retlen)
ReadINI = Ret
End Function



'Caminho do Banco
Public Function Banco()
Banco = ReadINI("Access", "Caminho", App.Path & "\Sist.ini")
End Function


'Conecta Banco
Public Function ConectaBanco()
On Error Resume Next
Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Banco & ";Jet OLEDB:Database Password=merc290901;"
If Err Then
MSGERROS
End
End If

End Function



MOREIRA 20/12/2006 20:31:47
#191306
coloquei o exemplo q o maigo nil postou continua com o dando erro...objeto variable or with variable not set.. ENTÃO VOLTEI NO EXEMPLO Q POSTEI POR ESTà MAS POR DENTRO... COM ESSE ERROR

POSSIVEL ENCONTRAR ISAM DISPONIVEL." AI MARCA ESTE PONTO
----> .Open

NAO CONSEQUI ABRIR...

USUARIO.EXCLUIDOS 20/12/2006 20:49:32
#191308
voce consegue copiar arquivos pra essa pasta por rede cara?
WEBER 21/12/2006 00:15:05
#191330
Pera lá problema de isam nao tem nada a ver com pasta nao, é simplesmente ele nao esta achando ou o drive de conexao especificado para a conexao ado, não é satisfatorio, faz o seguinte converte esse banco access 2003 para o 2000/xp e tenta rodar, pq se nao me engano o Microsoft.Jet.OLEDB.4.0 nao guenta o access 2003.


Citação:

MOREIRA escreveu:[
POSSIVEL ENCONTRAR ISAM DISPONIVEL.[Ô] AI MARCA ESTE PONTO
----> .Open

NAO CONSEQUI ABRIR...



sim exatamente na abertura usando o jet 4.0
USUARIO.EXCLUIDOS 21/12/2006 01:23:37
#191332
cara por que você não coloca o bd com somente uma tabela com o campo caminhoderede em cada máquina cliente, cria uma função para vincular as tabelas do banco de dados do servidor.

quando for aberto o sistema verifica a tabela e o campo caminhoderede, se ele encontrar vincula todas as tabelas se a tabela rede com o caminho da rede estiver vazio ele abre um formulário para que seja localizado o caminho da rede e salva na tabela. gravou este caminho pronto tá resolvido.



USUARIO.EXCLUIDOS 22/12/2006 07:13:00
#191655
Citação:

variable or with variable not set


coloque
new adodb.connection
USUARIO.EXCLUIDOS 22/12/2006 08:10:50
#191661
Oi Moreira... trabalhar com sistemas em rede não é diferente em nada de trabalhar com sistema local, porém... duas coisas são super necessarias para que a comunição seja realizada com sucesso...

1º vc precisa ter em todas as maquinas que vão rodar seu sistema o MCAD atualizado você pode usar a versão 2.7

2º vc precisa instalar também o DBE administrator... é facil de ahar na net, com estes porgramas instalados a comunição se torna perfeita...

Qualquer coisa me manda um email!!

abraçoss
Tópico encerrado , respostas não são mais permitidas