Galera Boa tarde!
Estou finalizando meu projeto, e gostaria de ajuda de vocês, mais primeiro para se "situarem", segue algumas observações:
- O BD está dividido em DB e FE;
- O DB e o FE ficará hospedado no servidor da empresa, e os usuários acessarão via .rdp;
- O Banco de Dados possui conexão com dois sistemas com Banco de Dados Oracle;
- Ao iniciar a construção do projeto eu criei uma ODBC (na minha máquina) através do Oracle Client, e posteriormente conectei as tabelas necessárias dos Sistemas Legados.
A pergunta é o seguinte: Eu consigo criar uma conexão do Access com o Oracle via vba, sem a necessidade de ter instalado o Oracle Client?
Segue o código, que atualmente uso para realizar a conexão:
Certo de contar com o costumeiro apoio de vocês
Estou finalizando meu projeto, e gostaria de ajuda de vocês, mais primeiro para se "situarem", segue algumas observações:
- O BD está dividido em DB e FE;
- O DB e o FE ficará hospedado no servidor da empresa, e os usuários acessarão via .rdp;
- O Banco de Dados possui conexão com dois sistemas com Banco de Dados Oracle;
- Ao iniciar a construção do projeto eu criei uma ODBC (na minha máquina) através do Oracle Client, e posteriormente conectei as tabelas necessárias dos Sistemas Legados.
A pergunta é o seguinte: Eu consigo criar uma conexão do Access com o Oracle via vba, sem a necessidade de ter instalado o Oracle Client?
Segue o código, que atualmente uso para realizar a conexão:
- Código:
Public Function Conexao_Oracle()
Dim DB As DAO.Database
Dim TDF As TableDef
Dim CONEXAO_SGE As String
Dim CONEXAO_PROTHEUS As String
Dim VINCULACAO As String
Dim CONTAR_TDF As Integer
Dim wshell
Set wshell = CreateObject("Wscript.Shell")
Set DB = CurrentDb()
'---------------------------------------------------------------------------------------------------------
' 1. Muda cursor para ampulheta
'---------------------------------------------------------------------------------------------------------
Screen.MousePointer = 11
wshell.PopUp "Conectando a Servidores Externos...", _
2, "UNIDES - SENAI/MT", 64
'---------------------------------------------------------------------------------------------------------
' 2. Ajusta contador de tabelas = 1
'---------------------------------------------------------------------------------------------------------
CONTAR_TDF = 1
'---------------------------------------------------------------------------------------------------------
' 3. Informa os parâmetros de Acesso ao Banco de Dados do iPlan
'---------------------------------------------------------------------------------------------------------
CONEXAO_SGE = "ODBC;" & _
"DSN=SGE_PRD;" & _
"UID=usuario;" & _
"PWD=senha;" & _
"SERVER=informacao"
CONEXAO_PROTHEUS = "ODBC;" & _
"DSN=PROTHEUS_PRD;" & _
"UID=usuario;" & _
"PWD=senha;" & _
"SERVER=informacao"
'---------------------------------------------------------------------------------------------------------
' 4. Inicia a barra de progresso - conta o total de tabelas vinculadas
'---------------------------------------------------------------------------------------------------------
SysCmd acSysCmdInitMeter, "Conectando a Servidores Externos...", DB.TableDefs.Count
'---------------------------------------------------------------------------------------------------------
' 5. Loop por todas as tabelas do banco de dados
'---------------------------------------------------------------------------------------------------------
For Each TDF In DB.TableDefs
SysCmd acSysCmdUpdateMeter, CONTAR_TDF
CONTAR_TDF = CONTAR_TDF + 1
'---------------------------------------------------------------------------------------------------------
' 5.1 Se a tabela tem uma seqüência de conexão, é uma tabela vinculada.
'---------------------------------------------------------------------------------------------------------
If Len(TDF.Connect) > 0 Then
If Left$(TDF.Connect, 17) = "ODBC;DSN=SGE_PRD;" Then
TDF.Connect = CONEXAO_SGE: TDF.RefreshLink
ElseIf Left$(TDF.Connect, 22) = "ODBC;DSN=PROTHEUS_PRD;" Then
TDF.Connect = CONEXAO_PROTHEUS: TDF.RefreshLink
End If
End If
Next TDF
SysCmd acSysCmdRemoveMeter
'---------------------------------------------------------------------------------------------------------
' 6. Muda cursor para seta
'---------------------------------------------------------------------------------------------------------
Screen.MousePointer = 0
'---------------------------------------------------------------------------------------------------------
' 7. Fecha o Banco de Dados e Limpa Memória
'---------------------------------------------------------------------------------------------------------
Screen.MousePointer = 0
DB.Close
Set TDF = Nothing
Set DB = Nothing
End Function
Certo de contar com o costumeiro apoio de vocês