Generar codigo

ZeHc
07 de Marzo del 2004
Hola, estoy haciendo una practica para el cole, y se me a presentado este problemilla. Para explicarlo mejor, pongo una exposición de mi duda y así.

Tengo una tabla "TablaEmpleados" con 3 campos(Dni, Nombre, Codigo, Tipo).
El campo "Dni" es para introducir dicho dni.
El campo "Nombre" es para introducir el nombre... jeje
EL campo "Codigo" es para meter solo numeros (ejemplo: 00001,00002,00003, etc.).
El campo "Tipo" es para introducir el tipo de Empleado que es.

Tengo un formulario "FormularioEmpleados" con 2 cuadros de texto, uno el de el "Codigo" (que va a estar oculto porque no quiero que lo meta el usuario, sino que genere el solo), otro el "Dni" y tambien un cuadro combinado para el "Tipo", y por ultimo un boton de comando llamado "Guardar". Todos los objetos independientes.

Lo que quiero hacer es que al introducir por ejemplo: dni(44123123-H), tipo (Recepcionista) y al darle al boton "Guardar" me inserte los datos en la tabla "TablaEmpleados" pero el codigo se genere solo, es decir, mire en la tabla "TablaEmpleados" cual es el ultimo codigo mayor y con el tipo Recepcionista y pues si lo encuentra que le sume uno mas y sino pues que empiece del "00001".

Una cosa que no os e explicado todavía, va a ser la misma variable "Codigo" pero que sea como 3 contadores, uno para cada tipo, es decir, si metemos 3 recepcionistas una tras otra tendría de codigo "00001","00002", "00003", pero si ahora meto un registro que de tipo sea "Guardia" en el campo "Codigo" guardará el valor "00001" y pues segun que tipo sea siga con el respectivo valor de codigo.

Espero que me podaís ayudar... asias de antelación.

Saludos!!

kinoscar
07 de Marzo del 2004
la soluciona tu inquietud seria la siguiente, primero debes hacer un filtro para buscar todos los tipos que existan y sean iguales al que estas ingresando ordenas por codigo y si el recordcount es mayor a 0 te mueves al ultimo y a ese le agregas 1 despues guardas, el codigo seria asi
dim codigo as integer
with adoempleados.recordset
.filter="tipo='recepcionista'"
.sort="codigo asc"
if .recordcount<>0 then
.movelast
codigo=.fields("codigo").value +1
else
codigo=1
endif
end with

este codigo esta hecho para un adodc

espero te sirva
suerte