Clave autonumérica con letra

Soy fisioterapeuta (no experto en access aunque me manejo bien) y estoy con una base de datos para gestionar una terrible lista de espera que nos dificulta la organización.
De la tabla de datos he realizado un formulario de entrada. Lo van a usar desde varios centros a la vez y yo recogeré los datos en una tabla maestra centralizada (supongo que los cogeré físicamente en disquete porque no se me ocurre otra forma). El caso es que la clave es autonumérica incremental para cada tratamiento que se paute, pero me he dado cuenta que en cada centro se va a generar el tratamiento nº 1,2... Y habrá otro tratamiento nº 1,2... En los otros centros, lo cual es incompatible con la definición de clave de la tabla. Aunque puedo definir una clave compuesta por dos campos [Id] y [CENTRO] me pregunto si hay alguna forma de forzar que el campo [Id] autonumérico me añada automáticamente antes del número una letra para cada centro: por ejemplo D1, D2... Y en otro centro A1, A2...
Espero que no sea muy difícil y te agradezco tu ayuda de antemano.
2

2 respuestas

Respuesta
1
Yo personalmente soy enemigo de los autonuméricos, ya que no tienes control sobre ellos, se lo dejas a Access. Puedes hacer varias cosas
1º Dejarlo como está y en la tabla crear un campo Clave(texto, indexado sin duplicados) y éste sí que sea la verdadera clave y se la quitas al Id. En el formulario, en vista Diseño haz clic sobre el cuadro Clave y en sus propiedades-eventos-Al recibir el enfoque, crea un procedimiento de evento y entre Private Sub... y End Sub escribe
Clave="A"&""&[id]
En otro Centro pondrías
Clave="B"&""&[id]
Etc
2º Eliminar el campo Id, crear un nuevo campo Clave(texto, sin duplicados). Hacer lo mismo de antes pero el código ponerlo como
Clave ="A"&""&[currentrecord]
Hay más pero creo que te complicaría la cosa
Gracias.Me has solucionado por completo y además me has confirmado mi intuición de hacer varios formularios según el centro desde donde se introduzcan los datos.
Respuesta
1
Que yo sepa, lo que tu pides no se puede hacer con Access. Tal y como el mismo nombre indica, las columnas "autonuméricas", son ante todo, eso, numéricas. Por tanto, no se le puede pedir a Access que haga una composición con texto en dicha columna. Lo mejor que puedes hacer, es lo que tu mismo indicas como alternativa, que es crear otra columna (numérica o alfanumérica) que identifique el Centro. Si no quieres que el formulario solicite este valor, puedes crear un fichero de configuración (.INI), en el que esté definido el valor de esta columna, diferente en cada centro, y desde AccesBasic, puedes leer el fichero, mediante la sentencia (OPEN "nombre_fichero" FOR INPUT AS #1) para abrir el fichero, y la sentencia (INPUT #1, variable) para recuperar el valor en la variable que tu quieras. Luego asignas esta variable a la columna de tabla cuando hagas el INSERT, y ya está.
Por cierto, si montas este sistema, es mejor que hagas un único acceso al fichero cuando se inicie el programa, y no cada vez que vayas a insertar una fila (evidentemente). Tras leer el fichero, recuerda cerrarlo con la sentencia (CLOSE #1).
Por cierto, el #1 es el indentificador de cada fichero. AccessBasic identifica los accesos a ficheros mediante "CANALES", y el #1 representa el canal 1. Si necesitas más ficheros abiertos a la vez, puedes ir usando #2, #3, #4, etc ...
El fichero .INI lo puedes crear manualmente mediante, por ejemplo, el Bloc de Notas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas