mensaje emergente número repetido |
Responder ![]() |
Autor | |
kraftwerk ![]() Nuevo ![]() Unido: 14/Septiembre/2023 Localización: españa Estado: Sin conexión Puntos: 14 |
![]() ![]() ![]() ![]() ![]() Enviado: 18/Septiembre/2023 a las 13:36 |
Hola, necesitaría ayuda de un problema que tengo que no resuelvo. Tengo una columna serial que la tengo configurada como indexada con SI (Sin duplicados), el problema que tengo es que si se repite un número me salta a modo depurador, me gustaría que en vez de eso me saltara un mensaje de "número repetido" y nada más. He probado con varios modelos que he visto por internet con DLookup pero no acabo de conseguirlo, se puede hacer? o con la columna indexada con SI ya no es posible que muestre un mensaje? Muchas Gracias
|
|
![]() |
|
xavi ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14630 |
![]() ![]() ![]() ![]() ![]() |
Hola,
Yo probaría utilizando el BeforeUpdate (Antes de actualizar) del control para hacer un DCount para contar cuantos registros tienen ese valor en el campo "Serial". Al ser un campo sin duplicados y estar utilizando el "Antes de actualizar", teóricamente una cuenta > 0 implica que ya existe. Con un DLookup también podría valer. El evento BeforeUpdate tiene un argumento Cancel que permite cancelar la inserción del valor lo que evitaría el mensaje de error. Prueba y nos cuentas Un saludo Un saludo
|
|
![]() |
|
kraftwerk ![]() Nuevo ![]() Unido: 14/Septiembre/2023 Localización: españa Estado: Sin conexión Puntos: 14 |
![]() ![]() ![]() ![]() ![]() |
Hola,
finalmente lo he conseguido con Dcount: Private Sub serial_BeforeUpdate(Cancel As Integer) If DCount("*", "trazabilidad", "serial='" & Me.serial.Value & "' and serial='" & Me.serial.Value & "'") > 0 Then MsgBox "NÚMERO REPETIDO", vbInformation, "!!!ATT!!! NÚMERO DUPLICADO" Cancel = True End If End Sub Estoy intentando de colocar una ventana en el formulario en el que se vea el último nº de serie introducido, pero no hay manera, lo estoy haciendo con AfterUpdate pero nada. Con qué función lo podría hacer? Gracias |
|
![]() |
|
javier.mil ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador ![]() ![]() Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4787 |
![]() ![]() ![]() ![]() ![]() |
Hola, Para saber tu ultimo numero introducido podrías probar con Application.DoCmd.GoToRecord acDataForm, "MiCampoId", acLast Msgbox "MiCampoId" Cambia "MiCampoId" por cualquier campo de tu formulario Y prueba de ponerlo en el evento "OnCurrent" Otra opción Suponiendo que el formulario tenga el origen de los datos en otra tabla o en la misma seria Const cMiCampoAutonumerico = "Id" Const cMiTabla = "Table1" MsgBox DMax(cMiCampoAutonumerico, cMiTabla) Editado por javier.mil - 20/Septiembre/2023 a las 17:36 |
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |