Problemas con origen de datos en Microsoft Query

11/01/2007 - 11:53 por Adolfo Fernández | Informe spam
Hola gente,

Tengo un pequeño problema con Microsoft Query, les cuento:

Lo que quiero hacer es una consulta a dos origenes de datos diferentes para
poder relacionar las tablas entre si. En un origen de datos tengo una tabla
con las previsiones de cobro de los clientes (Codigo de Cliente y
vencimiento de la previsión) y en otro origen de datos tengo otra tabla con
el nombre del cliente. Lo que quiero es una consulta que me devuelva el
nombre del cliente y el vencimietno de la previsión, no el código. Para ello
tendría que vincular dichas tablas a traves del campo código y asi realizar
la consulta. Hasta aqui todo bien, el problema es que no se como hacer
(suponiendo que se pueda) una consulta a dos origenes de datos diferentes.
¿Alguien sabe si se puede hacer y en ese caso como hacerlo?

Una solución alternativa es crear dos consultas en la hoja excel y despues
crear un campo con buscarv, pero la hoja en la que trabajo ya tiene
demasiadas formulas matriciales y de vez en cuando me aparece el mensaje de
que no hay recursos suficientes. Estoy intentando optimizar al máximo la
capacidad de la hoja y una buena opción creo que sería quitar todas estas
funciones buscarv que tengo (generalmente son mas de 1000)

Un saludo y gracias por anticipado

Adolfo

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/01/2007 - 08:18 | Informe spam
hola, Adolfo !

1) comentarte que si efectivamente usas muchas/demsiadas formulas 'matriciales' y del tipo buscarv(...)
[probablemente] es tiempo de buscar alternativas menos 'consume-recursos' [dependiendo de las necesidades de tu modelo] -?-

2) si expones las cadenas de las consultas que harias de manera individual [para unirlas despues segun comentas]...
[probablemente] se podria idear/encontrar/... alguna manera de 'optimizar/las' -quizas- en una sola consulta -?-

-> para los dos puntos anteriores [probablemente] se podria usar solo macros [en lugar de 'bajar' las consultas a las hojas] ?-

3) [generalmente] las consultas 'cruzadas' a diferentes tablas/origenes de datos... son del tipo siguiente:

FROM T1 JOIN T2 ON T1.Field = T2.Field

registros comunes a ambas tablas:
SELECT T1.Cod, T1.Nombre FROM T1 T1 INNER JOIN T2 T2 ON T1.Cod = T2.Cod

registros en T1 que no estan en T2:
SELECT T1.Cod, T1.Nombre FROM T1 T1 LEFT JOIN T2 T2 ON T1.Cod = T2.Cod WHERE T2.Cod IS NULL

registros en T2 que no estan en T1:
SELECT T2.Cod, T2.Nombre FROM T1 T1 RIGHT JOIN T2 T2 ON T1.Cod = T2.Cod WHERE T1.Cod IS NULL

registros en ambas tablas sin duplicados:
SELECT T1.Cod, T1.Nombre FROM T1 T1 UNION SELECT T2.Cod, T2.Nombre FROM T2 T2

registros en ambas tablas incluyendo duplicados:
SELECT T1.Cod, T1.Nombre FROM T1 T1 UNION ALL SELECT T2.Cod, T2.Nombre FROM T2 T2 ORDER BY 1

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Mostrar la cita
#2 Adolfo Fernández
12/01/2007 - 09:46 | Informe spam
Lo que estoy haciendo es una hoja de calculo para el control de la
tesorería, por lo tanto lo que necesito es saber las previsiones de cobro
que me genera el programa de contabilidad. Gracias a la ayuda de este foro
he ido perfeccionando la aplicación para que cada vez me de más datos y cada
vez sea mas eficiente.
Mi necesidad de más datos me obliga a optimizar al máximo posible las
formulas y los procesos que se ejecutan, y es en este punto donde me
encuentro.
Mi programa de contabilidad me genera las previsiones de los clientes pero
no me dice de quien es esa previsión, simplemente me da un código (el código
del cliente) lo que necesito es unir ese código con ese nombre (hay unos 700
clientes, y aprenderme el nombre de todos ellos es algo como que inviable,
además tengo en mismo problema con los proveedores)
Hasta ahora lo que hacia era lo siguiente, dos consultas (os presento el
código que me genera Microsoft Query en los archivos con extensión .dqy) y
unía ambas consultas en la hoja de excel con la función buscarv (pero
estamos hablando de unas ochocientas buscarv, lo cual unido al resto de
fórmulas a veces provoca el mensaje de que faltan recursos)

Consulta de las previsiones
DSN=COMU0001;UID=;SourceDB=\\PRINCIPAL\Ew600Serv\COMUNES\comunes.dbc;SourceT
ypeÛC;Exclusive=No;BackgroundFetch=No;Collate=Machine;Null=Sí;Deleted=Sí;
SELECT previ_cl.cliente, previ_cl.vencim, previ_cl.importe FROM previ_cl
previ_cl

Consulta de los clientes
DSN 07KK;UID=;SourceDB=C:\Ew600Serv\2007KK\GESTION.DBC;SourceTypeÛC;Excl
usive=No;BackgroundFetch=No;Collate=Machine;Null=Sí;Deleted=Sí;
SELECT clientes.codigo, clientes.nombre

Si las dos tablas estarían en una DSN el código que se generaría es el que
he puesto a continuación
Aquí tengo dos tablas, artículos y pvp unidas ambas por el código del
artículo. Lo que he conseguido es una consulta donde tenga todos los
artículos con su código, su nombre y su pvp.

Consulta con lo que quiero hacer si estuviese en una misma DSN
DSN 06KK;UID=;SourceDB=\\PRINCIPAL\Ew600Serv\2006KK\GESTION.DBC;SourceType
ÛC;Exclusive=No;BackgroundFetch=No;Collate=Machine;Null=Sí;Deleted=Sí;
SELECT articulo.marca, articulo.codigo, articulo.nombre, pvp.pvp,
articulo.subfamilia FROM articulo articulo, pvp pvp WHERE pvp.articulo articulo.codigo

Mi problema por lo tanto es saber como hacer esa consulta cuando las tablas
están en diferentes DSN

Lo de hacer con macros, no lo he intentado nunca y si que agradecería algún
manual o algo donde poder ver como hacer dicha consulta o por lo menos por
donde empezar.

Por si a alguien se le ocurre, en access si que podría vincular tablas de
diferentes DSN en una misma aplicación sin problemas, el problema radica en
que la tabla de las previsiones tiene demasiados índices y no me permite
vincularla.

Un saludo, gracias por anticipado y cualquier idea será bienvenida
Adolfo



"Héctor Miguel" escribió en el mensaje
news:%
Mostrar la cita
'matriciales' y del tipo buscarv(...)
Mostrar la cita
'consume-recursos' [dependiendo de las necesidades de tu modelo] -?-
Mostrar la cita
[para unirlas despues segun comentas]...
Mostrar la cita
'optimizar/las' -quizas- en una sola consulta -?-
Mostrar la cita
macros [en lugar de 'bajar' las consultas a las hojas] ?-
Mostrar la cita
datos... son del tipo siguiente:
Mostrar la cita
WHERE T2.Cod IS NULL
Mostrar la cita
WHERE T1.Cod IS NULL
Mostrar la cita
T2
Mostrar la cita
FROM T2 T2 ORDER BY 1
Mostrar la cita
de datos diferentes para... relacionar las tablas entre si.
Mostrar la cita
clientes (Codigo de Cliente y vencimiento de la prevision)
Mostrar la cita
vencimietno de la prevision, no el codigo.
Mostrar la cita
realizar la consulta.
Mostrar la cita
consulta a dos origenes de datos diferentes...
Mostrar la cita
un campo con buscarv
Mostrar la cita
cuando me aparece el mensaje de que no hay recursos suficientes.
Mostrar la cita
opcion creo que seria
Mostrar la cita
1000)
Mostrar la cita
#3 Héctor Miguel
14/01/2007 - 00:32 | Informe spam
hola, Adolfo !

1) revisa/analiza/adapta/... la conversacion 'al respecto' que puedes encontrar aqui: -> http://tinyurl.com/yyzewz
'habla' -precisamente- de como unir [JOIN] una tabla en excel/access... y/a/con una tabla en un servidor
-> en una ['sola' ?] consuta/query/... involucrando...
a) un 'StoredProcedure' [en el lado del servidor]
b) la 'maquinaria' de busqueda Jet [que es la que permite un 'pase-por' para unir xls/mdb con el servidor]
c) hacer/obtener/... un listado/recordset/... 'filtrando' -p.e.- los codigos en xls/mdb con 'el resto' de sus datos [en el servidor]

2) [probablemente] podras 'ahorrarte' unas cuantas de las 'chorrocientas' formulas buscarv y matriciales -?-

si cualquier duda [o 'despues de'... informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Mostrar la cita
#4 Adolfo Fernández
15/01/2007 - 08:52 | Informe spam
Muchas gracias, estoy analizando la información, pero creo que en principio
esto es lo que andaba buscando, no te voy a preguntar como has encontrado
algo asi, pero supongo que te ha costado lo suyo, asi que nuevamente muchas
gracias.

Saludos,
Adolfo

"Héctor Miguel" escribió en el mensaje
news:%
Mostrar la cita
encontrar aqui: -> http://tinyurl.com/yyzewz
Mostrar la cita
excel/access... y/a/con una tabla en un servidor
Mostrar la cita
'pase-por' para unir xls/mdb con el servidor]
Mostrar la cita
codigos en xls/mdb con 'el resto' de sus datos [en el servidor]
Mostrar la cita
formulas buscarv y matriciales -?-
Mostrar la cita
de contabilidad
Mostrar la cita
las formulas y los procesos que se ejecutan
Mostrar la cita
clientes pero no me dice de quien es esa prevision
Mostrar la cita
ese nombre (... 700 clientes.. mismo problema con los proveedores)
Mostrar la cita
genera Microsoft Query en los archivos con extension .dqy)
Mostrar la cita
ochocientas buscarv
Mostrar la cita
recursos)
Mostrar la cita
DSN=COMU0001;UID=;SourceDB=\\PRINCIPAL\Ew600Serv\COMUNES\comunes.dbc;SourceT
ypeÛC;Exclusive=No;
Mostrar la cita
previ_cl.cliente, previ_cl.vencim, previ_cl.importe
Mostrar la cita
DSN 07KK;UID=;SourceDB=C:\Ew600Serv\2007KK\GESTION.DBC;SourceTypeÛC;Excl
usive=No;
Mostrar la cita
clientes.codigo, clientes.nombre
Mostrar la cita
que he puesto a continuacion
Mostrar la cita
articulo.
Mostrar la cita
su codigo, su nombre y su pvp.
Mostrar la cita
DSN 06KK;UID=;SourceDB=\\PRINCIPAL\Ew600Serv\2006KK\GESTION.DBC;SourceType
Mostrar la cita
articulo.subfamilia
Mostrar la cita
tablas estan en diferentes DSN
Mostrar la cita
algun manual
Mostrar la cita
donde empezar.
Mostrar la cita
de diferentes DSN en una misma aplicacion sin problemas
Mostrar la cita
indices y no me permite vincularla.
Mostrar la cita
Ads by Google
Search Busqueda sugerida