Recorrer un campo de una tabla access en una función visual basic

Antes que nada decir que llevo muy poco iniciado en Visual Basic, estoy haciendo un programa para el mantenimiento de unas máquinas de laboratorio. Cada una de estas máquinas tiene unas tareas con una frecuencia de realización (cada 5 días, cada 6 días...). Y debo realizar estas tareas con una frecuencia, pero sin contar los fines de semana y los días festivos. De momento solo esta el código para que no cuente los fines de semana.
Tengo una tabla en la que aparecen las diferentes tareas de cada máquina con sus correspondientes frecuencias de realización. Uso dlookup para que en mi formulario se muestre la frecuencia de dicha tarea, para ello uso el campo [Id] de mi tabla.
Si en Id pongo un valor numérico (ejemplo: Id=3 es la tarea numero 3 ---> y tiene una frecuencia de mantenimiento cada 6 días) si que me saca la frecuencia correspondiente a ese registro (Id) en concreto (pero pone en el formulario para todas las tareas una frecuencia de 5 días, y lo que quiero es que para la tarea 1 ponga su frecuencia correspondiente, para la 2 la suya...) pero si uso un bucle for, me da error de tiempos. La tabla seria algo así:
Tabla: mantenimiento
Id tarea frecuencia
1 limpieza 5
2 reparación 7
3 calibración 6
Código empleado:
Public Function DiasFestivos(fechainicio As Date) As Date
Dim frec As Variant
Dim ide As Variant
For ide = 1 To 16
frec = DLookup("[FRECUENCIA]", "MANTENIMIENTO", "[Id]= ide")
fechafin = fechainicio
While frec > 0
If DatePart("w", fechafin) > 1 And DatePart("w", fechafin) < 7 Then
frec = frec - 1
End If
fechafin = fechafin + 1
Wend
If DatePart("w", fechafin) = 1 Then
fechafin = fechafin + 1
End If
If DatePart("w", fechafin) = 7 Then
fechafin = fechafin + 2
End If
DiasFestivos = fechafin
Next ide
End Function

1 respuesta

Respuesta
-1
¿Si la frecuencia esta grabada en una tabla porque haces un while y le restas el valor? Simplemente coloca el que diga la tabla.
Primero gracias por contestar con tanta brevedad... el problema que tengo es que no se como acceder a una tabla access ni como recorrer sus campos uno a uno (he leído algo de database y recordset, pero no se como organizar el contenido que tengo para que funcione ni como usar esos comandos correctamente), porque nunca he usado ni visual basic ni access ( es una exigencia del trabajo) así que soy bastante nuevo en esto.
El programa, tal y como lo tengo, poniendo en la función DLookup un Id igual a un valor en concreto (es decir, sin usar la variable ide ni el bucle for), si que me accede a la tabla MANTENIMIENTO y en el formulario usa esa frecuencia... Si la frecuencia es 5 y le pongo fecha inicial 23/01/2012 en fecha final me pone 30/01/2012 (hace 5 días, saltándose el fin de semana).
Lo que me gustaría hacer, es un bucle o algo que leyera el campo FRECUENCIA de la tabla MANTENIMIENTO y fuera asignando los valores, uno a uno, a la variable frec , es por eso por lo que lo asocio al campo Id de la tabla MANTENIMIENTO, para que vaya por orden, y solo conozco la instrucción Dlookup, cuando seguramente habrá otra instrucción que me permita hacer eso.
Espero que puedas ayudarme, porque llevo ya bastantes días enganchado con esto y no puedo avanzar.
Un saludo y gracias

En www.elguille.info hay un curso completo en español, te lo recomiendo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas