Article View: es.comp.bd.ms-access
Article #151Re: No limitar a lista y dar de baja a pacientes
From: Kanarion
Date: Wed, 01 Nov 2006 21:25
Date: Wed, 01 Nov 2006 21:25
62 lines
3497 bytes
3497 bytes
Luisa Delmonte ha escrito:
> Hola a todos,
>
> Estoy creando una base de datos; es la primera que hago. Hsta ahora he
> ido haciendo pero ahora empeiza a complicarse y ya no se por donde
> tirar. Necesito ayuda.
Simplifica. Creo que los problemas que tienes son de diseño de las
tablas.
En primer lugar, utiliza una consulta para obtener los pacientes en
alta
SELECT ... FROM TablaPacientes ... WHERE FechaBaja IS Null ...;
Esta consulta te devolverá los datos de los pacientes en lo que no
conste una fecha de baja.
Creo que has hecho otra consulta al grupo sobre llevar un control de
visitas médicas. Yo no crearía una tabla para cada especialidad, si
una para todas las especialidades, y una tabla con un campo clave para
la lista de especialidades. Relacionaría ambas tablas y cuando se de
una cita, la persona que lo haga que elija la especialidad en un
ComboBox (una lista desplegable).
Si lo que quieres es que el usuario pueda añadir sobre la marcha
valores nuevos a la lista, tienes que establecer la propiedad
LimitarALaLista a verdadero y añadir código para el evento
NoEstáEnLaLista (NotInList)
El código para empezar sería:
Private Sub Especialidad_NotInList(NewData As String, Response As
Integer)
DoCmd.RunSQL "INSERT INTO Tabla2 (Especialidad) VALUES (" & Chr(34)
& NewData & Chr(34) & ");"
Response = acDataErrAdded
End Sub
Esto quedaría un poco rústico aunque funciona. Quedaría mejor si se
añade un poco de código más:
Primero: pedir confirmación al usuario para que se consciente de que
va a agregar datos a la lista:
If vbYes = msgbox(Pregunta, vbQuestion + vbyesno) then
...
else
' Si contesta que no, ignorar el error y deshacer la entrada del
usuario
Response = acDataErrContinue
ctl.Undo
end if
Segundo: validar la entrada del usuario para que el nuevo dato sea
coherente con el formato de los datos ya existentes.
Tercero: Si agregas un nuevo valor utilizando una sentencia SQL
aparecerá un mensaje advirtiendo al usuario, un mensaje que puede
resultar desconcertante. Lo puedes desactiva con docmd.SetWarnings
False; y una vez ejecutado vuelves a activar las alertas del sistema
con docmd.SetWarnings True
Technical Details
Message-ID:
<1162416301.853270.100050@f16g2000cwb.googlegroups.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!f16g2000cwb.googlegroups.com!not-for-mailReferences:
<1161110641.777919.137080@m73g2000cwd.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 111a5a,6a20e1132f06f2bc X-Google-Attributes: gid111a5a,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!f16g2000cwb.googlegroups.com!not-for-mail From: "Kanarion" <lczz@eresmas.com> Newsgroups: es.comp.bd.ms-access Subject: Re: No limitar a lista y dar de baja a pacientes Date: 1 Nov 2006 13:25:01 -0800 Organization: http://groups.google.com Lines: 63 Message-ID: <1162416301.853270.100050@f16g2000cwb.googlegroups.com> References: <1161110641.777919.137080@m73g2000cwd.googlegroups.com> NNTP-Posting-Host: 83.39.51.89 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1162416307 18976 127.0.0.1 (1 Nov 2006 21:25:07 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 1 Nov 2006 21:25:07 +0000 (UTC) In-Reply-To: <1161110641.777919.137080@m73g2000cwd.googlegroups.com> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98),gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: f16g2000cwb.googlegroups.com; posting-host=83.39.51.89; posting-account=EuSFzAwAAAAZsEEjhfzrqU1zyJk0Tu0u