Sobre indices en access

He visto que hace poco contestaste a una pregunta sobre índices en Access pero no veo el modo de aplicar aquel ejemplo a la mía. Te cuento:
Estoy creando una base de datos en Access sobre empresas y tengo un campo llamado "id_empresa"(clave principal de la tabla) que es autonumérico y un campo llamado "nombre empresa". Me gustaría saber si hay manera de crear un índice para empresas de modo que no hayan duplicados, por ejemplo, ¿qué no haya un registro que se llame "fulanito s.a." y otro que se llame "fulanito S.A". Hay manera de crear este tipo de índices? Los que visto en otras bases de datos, pero no se si existen en Access o como hay que hacerlas.
Respuesta
1
Vamos a ver si me explico. Si lo que pretendes es que no pueda haber dos registros(lógicamente con IdEmpresa distinto, ya que es autonumérico) con Fulanito S.A., puedes poner como clave el campo Empresa y quitárselo a Idempresa, ya que como es autonumérico, ya es irrepetible y por tanto no habrá otro igual, y ponerlo en Empresa.
También puedes dejarlo como está, y en el formulario donde metes los datos, que supondremos que se llama Ventas, y que tiene un cuadro de texto llamado Empresa, en las propiedades de este cuadro, en Eventos-Antes de actualizar, con el generador de código crear un procedimiento de evento y entre Private Sub... y End Sub escribir
If dcount("Empresa","nombre de la tabla donde está","[empresa]=[forms]![Ventas]![empresa]")>0 then
msgbox"Esa empresa ya está en la tabla"
docmd.cancelevent
end if
Así, en el formulario, cuando escribas el nombre de una empresa en el cuadro Empresa, contará cuantas hay con ese nombre en la tabla, si hay alguna(>0) te aparecerá el mensaje y no te dejará el cursor de el cuadro de texto Empresa a menos que cambies el nombre.
De todas formas, te aconsejaría, que si en la tabla no va a haber nunca dos nombres de empresa iguales ¡Que mejor índice que ese!. Olvídate de los autonuméricos. El único inconveniente de poner como clave el campo Empresa y no poder el código que te he puesto es que en el formulario, sólo te avisa del error cuando hayas rellenado todos los cuadros de texto y quieras pasar a otro registro o cerrar el formulario, con lo cual, vuelta a rejhacer todo, mientras que con el código, te avisa al momento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas