mudar cnsultas de acces a vb"consulta usa funcion"
Publicado por abraham ordoñez zarco (10 intervenciones) el 09/12/2006 00:09:29
hola espero pueda ayudarme, tengo una consulta en acces que nescecito mudar a visual basic. el problema es que esta consulta, es consulta de una consulta union y una de las tablas en la union es una consulta tambien, la cual utiliza dos funcion de un modulo llamadas MesI() y MesF(), entonces al asignar la consulta a un recordset, me da el error de que la funcion mesi no esta definida, claro, pues solo esta activa la base de datos pero no los modulos de codigo. mesi y mesf entregan datos de fecha.
acontinuacion pongo las tablas"consulta que tienen que ver en esto"
CKm-> SELECT KCm.Cuenta, Cuentas.T_Cuenta, Sum(KCm.MT) AS MT, Sum(KCm.MO) AS MO, Sum(KCm.SC) AS SC, Sum(KCm.FL) AS FL, Sum(KCm.AM) AS AM, Sum(KCm.OT) AS OT, Sum(KCm.MQ) AS MQ, OBS.Orden, OBS.Frente
FROM (KCm INNER JOIN Cuentas ON KCm.Cuenta = Cuentas.Cuenta) INNER JOIN OBS ON Cuentas.OBS = OBS.OBS
GROUP BY KCm.Cuenta, Cuentas.T_Cuenta, OBS.Orden, OBS.Frente;
KCm->SELECT CCm.Cuenta, CCm.CDm As MT,0 As MO,0 As SC,0 As FL,0 As AM,0 As OT,0 As MQ
FROM CCm
WHERE (((CCm.CP3)="1"));
Union All
SELECT CCm.Cuenta, 0, CCm.CDm,0,0,0,0,0
FROM CCm
WHERE (((CCm.CP3)="3"));
Union All
SELECT CCm.Cuenta,0,0, CCm.CDm,0,0,0,0
FROM CCm
WHERE (((CCm.CP3)="5"));
Union All
SELECT CCm.Cuenta,0,0,0, CCm.CDm,0,0,0
FROM CCm
WHERE (((CCm.CP3)="6"));
Union All
SELECT CCm.Cuenta, 0,0,0,0,CCm.CDm,0,0
FROM CCm
WHERE (((CCm.CP3)="7"));
Union All
SELECT CCm.Cuenta, 0,0,0,0,0,CCm.CDm,0
FROM CCm
WHERE (((CCm.CP3)="8"));
UNION ALL SELECT CCm.Cuenta, 0,0,0,0,0,0,CCm.CDm
FROM CCm
WHERE (((CCm.CP3)="9"));
y el gram problema biene aqui:
CCm->SELECT CD_.Cuenta, CD_.T_Cuenta, CD_.CP3, Sum(CD_.Importe) AS CDm
FROM CD_
WHERE (((CD_.Fecha)>=MesI() And (CD_.Fecha)<=MesF()))
GROUP BY CD_.Cuenta, CD_.T_Cuenta, CD_.CP3;
el caso es que ccm es una seleccion de todos los registros de la tabla CD, pero que cumplan con el rango de fecha especificado por mesI y mesF. una ves mas, mesi y mesf son funciones que estan dentro de modulos en el proyecto de access, esposible usar esto desde vb ejemplo:
datat1.databasename = app.path & "\sica97.mdb"
data1.recordsourse = "KCm"
data1.refresh ' aqui me da el error de que la funcion mes i no esta definida.
como puedo solucionar esto ?.
por su atencion gracias.
acontinuacion pongo las tablas"consulta que tienen que ver en esto"
CKm-> SELECT KCm.Cuenta, Cuentas.T_Cuenta, Sum(KCm.MT) AS MT, Sum(KCm.MO) AS MO, Sum(KCm.SC) AS SC, Sum(KCm.FL) AS FL, Sum(KCm.AM) AS AM, Sum(KCm.OT) AS OT, Sum(KCm.MQ) AS MQ, OBS.Orden, OBS.Frente
FROM (KCm INNER JOIN Cuentas ON KCm.Cuenta = Cuentas.Cuenta) INNER JOIN OBS ON Cuentas.OBS = OBS.OBS
GROUP BY KCm.Cuenta, Cuentas.T_Cuenta, OBS.Orden, OBS.Frente;
KCm->SELECT CCm.Cuenta, CCm.CDm As MT,0 As MO,0 As SC,0 As FL,0 As AM,0 As OT,0 As MQ
FROM CCm
WHERE (((CCm.CP3)="1"));
Union All
SELECT CCm.Cuenta, 0, CCm.CDm,0,0,0,0,0
FROM CCm
WHERE (((CCm.CP3)="3"));
Union All
SELECT CCm.Cuenta,0,0, CCm.CDm,0,0,0,0
FROM CCm
WHERE (((CCm.CP3)="5"));
Union All
SELECT CCm.Cuenta,0,0,0, CCm.CDm,0,0,0
FROM CCm
WHERE (((CCm.CP3)="6"));
Union All
SELECT CCm.Cuenta, 0,0,0,0,CCm.CDm,0,0
FROM CCm
WHERE (((CCm.CP3)="7"));
Union All
SELECT CCm.Cuenta, 0,0,0,0,0,CCm.CDm,0
FROM CCm
WHERE (((CCm.CP3)="8"));
UNION ALL SELECT CCm.Cuenta, 0,0,0,0,0,0,CCm.CDm
FROM CCm
WHERE (((CCm.CP3)="9"));
y el gram problema biene aqui:
CCm->SELECT CD_.Cuenta, CD_.T_Cuenta, CD_.CP3, Sum(CD_.Importe) AS CDm
FROM CD_
WHERE (((CD_.Fecha)>=MesI() And (CD_.Fecha)<=MesF()))
GROUP BY CD_.Cuenta, CD_.T_Cuenta, CD_.CP3;
el caso es que ccm es una seleccion de todos los registros de la tabla CD, pero que cumplan con el rango de fecha especificado por mesI y mesF. una ves mas, mesi y mesf son funciones que estan dentro de modulos en el proyecto de access, esposible usar esto desde vb ejemplo:
datat1.databasename = app.path & "\sica97.mdb"
data1.recordsourse = "KCm"
data1.refresh ' aqui me da el error de que la funcion mes i no esta definida.
como puedo solucionar esto ?.
por su atencion gracias.
Valora esta pregunta


0