Si eres usuario
Ingresa aquí »
¿Eres nuevo?
Regístrate
  • Google
  • Artículos
  • Foros
  • Fotos
  • Videos
  • Amigos
Estás en: Inicio / Foros / Informática / Programación

Respuesta
 
LinkBack Herramientas Buscar en este tema
Monito
[VB] Inner join
Tengo un problema y se que ustedes me pueden ayudar
tengo 2 bases access, una tiene los clientes y otra los pedidos
clientes.mdb
codCli=integer
razonSocial=string

pedidos.mdb
codCli=integer
descripcion=string

Tengo una conexion ado para cada una, el problema es que no puedo hacer un cruce (por codCli) entre las tablas porque estan en distintas bases. Alguien sabe como hacerlo?
Simio loco
Re: Inner join
Podrias vincular una de las tablas en una de las bases de datos, por ejemplo vincular la tabla "pedidos" en la base de datos de "clientes", solo la vinculas a la hora de hacer la consulta y luego la liberas.

De esa forma vas a poder trabajar con la tabla vinculada "pedidos" como si fuera local en la base de datos "clientes.mdb" de forma totalmente transparente.

Si necesitas un ejemplo de como hacerlo avisame.

Saludos!
Monito
Re: Inner join
Gracias!
Pregunta, al vincular, no aumenta el tamaño de la base?
Vos decis que la vinculo y luego la libero, como se hace eso? porque si lo hago desde access queda de manera fija
muchas gracias!!!
Simio loco
Re: Inner join
No cabeza, si la importaras ahi si te creceria el tamaño de la BD pero al vincularla vos nomas creas un puntero a la tabla en la otra BD.

Aca te paso 2 metodos, uno para vicular y otro para desvincular tablas (necesitas una referencia a "ADO Ext. 2.x for DDL and Security"):

Código:
Public Function VincularTabla(pTabla As String) As Boolean
   
   Dim tblLink As ADOX.Table
    On Error GoTo ctrlErr
   Set catDB = New ADOX.Catalog
   Set catDB.ActiveConnection = ConexionDestino
    'ConexionDestino es la conexion de la Base de datos donde se creara el vinculo (es del tipo ADODB.Connection)
    
   If DesvincularTabla(pTabla) Then
       Set tblLink = New ADOX.Table
       
       With tblLink
          .Name = pTabla
          'nombre con el que te vas a referir a la tabla vinculada en tus consultas 
          Set .ParentCatalog = catDB
          
          .Properties("Jet OLEDB:Create Link") = True
          .Properties("Jet OLEDB:Link Datasource") = ConexionOrigen
          .Properties("Jet OLEDB:Remote Table Name") = pTabla
        'ConexionOrigen paso completo de la Base de datos de origen (la que contiene la tabla a vincular)
'Remote Table Name nombre de la tabla a vincular
       End With
       
       catDB.Tables.Append tblLink
       
       VincularTabla = True
    Else
       VincularTabla = False
    End If
    
   Exit Function
ctrlErr:
    VincularTabla = False
End Function
 
Public Function DesvincularTabla(pTabla As String) As Boolean
    On Error GoTo ctrlErr
    
    DesvincularTabla = True
    catDB.Tables.Delete (pTabla)
    
    Exit Function
ctrlErr:
    If Err.Number <> 3265 Then
        DesvincularTabla = False
    End If
    
End Function
Como veras no es dificil hacerlo, a la primer funcion podrias pasarle "ConexionDestino" ya como parametro, pero queda a criterio de cada uno.

Espero te sirva, cualquier cosa avisa como te fue, saludos!
Monito
Re: Inner join
Gracias campeon, lo pruebo y aviso
Igual lo hice desde access y funciona bien, igual voy a probar el codigo
Saludos y gracias nuevamente
Sith Lord
Re: Inner join
Si estas trabajando con Access, que en cuanto se trata de trabajar los datos, relaciones y propiedades de una base de datos, se queda bastante corto, siempre es mas recomendable que las restricciones y los manejos esten en el codigo... siempre y cuando se trate de Access (y aca estoy dejando de lado toda la teoria de base de datos y de programacion, para darle paso a la experiencia... usa MSDE!!! o SQL 2005 Express Edition, son gratis y usan el motor del MSSQL .... o usa MySQL... algo que sea un poco mas confiable que un Access)
Monito
Re: Inner join
Hola, pronto voy a migrar todo a mysql
Con respecto al codigo, me tira error en la siguiente linea y me estoy volviendo loco, alguien sabe porque?

Set catDB.ActiveConnection = ConexionDestino
'ConexionDestino es la conexion de la Base de datos donde se creara el vinculo (es del tipo ADODB.Connection)

Yo tengo:
Set catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + App.Path + "\data.mdb"
De ahi va directo a capturar el error

Muchas gracias!!!
Simio loco
Re: Inner join
Código:
Set catDB.ActiveConnection = ConexionDestino
    'ConexionDestino es la conexion de la Base de datos donde se creara el vinculo (es del tipo ADODB.Connection) 
ConexionDestino es del tipo ADODB.Connection, vos le estas pasando un string de conexion nomas, son tipos distintos, primero crea una conexion y despues seteasela.
Saludos!
Monito
Re: Inner join
En el load del form tengo esto:
adoR1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\data.mdb"
adoR1.RecordSource = "select * from clientes"
adoR1.Refresh

sin embargo, no se como asignarle el valor
gracias por la paciencia maxonico
Simio loco
Re: Inner join
Código:
 adoR1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\data.mdb"
adoR1.RecordSource = "select * from clientes"
adoR1.Refresh
No crazy, ahi estas trabajando con un recordset; lo que vos necesitas es una conexion, no tengo el VB6 a mano si queres pasame tu mail y te agrego al msn asi me pasas tu codigo y te lo hago funcionar.

Saludos!
 
Respuesta



Herramientas Buscar en este tema
Buscar en este tema:

Búsqueda avanzada
Califica este tema
Califica este tema:


Este tema está relacionado con otros ya publicados en el sitio. Podés visitarlos ahora!
Tema Iniciado por Foro Resp. Último mensaje
[ANSI SQL] Distintos Join El Rengo Programación 1 07.09.2006 09:13 hs.
Ayuda en SQL (join) en 3 tablas.....?? 5stone Recursos y más 3 13.05.2006 18:04 hs.
Join My Army!!!!! Obsidian Juegos de Mesa, Rol y Estrategia 7 14.03.2003 16:32 hs.

Ranking de temas y usuarios de este foro
Temas populares Usuarios más activos
• Cliente Servidor UDP en C#
• Ayuda-Como Insertar filas en un JTable y...
• Juego de Truco Open Source - Se necesitan...
• Leer/escribir archivos binarios
• Necesito AYUDA-ALGORITMOS!
• AGUSTIN_RAMONE
• pangus
• ExtrañoInocente
• -HeavenMight-
• Kryptonyte


 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
CertificaIAB
{{diadelamigo}}