Sumar campos

Saludos Juanito,
Tengo un problema con una base de datos de ACCESS. Las columnas son los días del año y las filas los trabajadores. Así cada persona es un registro, que tiene 365 campos, uno por cada día de la semana. Los campos contienen números que representan los días menos algunos que tienen la letra "V" que representan las vacaciones.
¿Cómo podría crear una consulta o un formulario que me dijera el número de "v" que tiene un trabajador?
Muchas gracias por tu atención.
Miquel.

1 Respuesta

Respuesta
1
De entrada, lo de una tabla con 365 campos debería estar multado. Debéis tener una tabla de trabajadores, y otra tabla de vacaciones con un campo idtrabajador relacionado con la tabla de trabajadores y otro con la fecha de la vacación (de esta forma, en la tabla vacaciones hay tantos registros por empleado como días de vacaciones haya disfrutado, con lo que hacer un select count(*) from vacaciones where idempleado='001' sería suficiente para resolver tu problema). El que diseñó la tabla era algo inexperto. Te recomiendo lo cambiéis cuanto antes para evitaros quebraderos de cabeza importantes. Si quieres saber el nº de días de vacaciones de un trabajador te puedes hacer una función que sea lanzada desde un control command de un formulario. Ejemplo.
public function dimeVac(id as string) as integer
dim base as dao.database
dim rs as dao.recordset
dim ifieldCounter as integer
on error goto tratError
set base=currentdb
set rs=base.openrecordset("select * from empleados where idempleado='" & id & "'")
if rs.recordcount=1 then 'Encontramos el empleado
for ifieldCounter=0 to rs.fields.count-1
if rs.fields(ifieldCounter).value="V" then
dimeVac=dimeVac+1
end if
next
else
dimeVac=-1
end if
rs.close
set rs=nothing
set base=nothing
exit function
:tratError
dimeVac=-1
end function
Si esto no te compila debes añadir el link a la biblioteca Microsoft DAO 3.6 Object Library desde el menu herramientas->referencias de tu ventana Visual Basic.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas