Imprimir página | Cerrar ventana

Condición

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85533
Fecha de impresión: 28/Marzo/2024 a las 20:08


Tema: Condición
Publicado por: Marcos141964
Asunto: Condición
Fecha de publicación: 13/Octubre/2020 a las 18:06
Hola a todos, espero que podáis ayudarme.
Tengo dos formularios, el primero se llama DIRECTORIO DE PACIENTES el cual mediante un botón, y con un paciente seleccionado, me lleva a otro formulario que se llama CONSULTA DE UN PACIENTE de ese paciente en concreto a este segundo formulario voy con este código DoCmd.OpenForm "frmConsultaPaciente", acNormal, , "[NHistoria]=" & Me.IDPaciente
Hasta hay todo bien, lo que necesito ahora y ya he probado un montón de cosas, es que mediante una condición en caso que esa consulta no este creada, IDPACIENTE=VACIO me salga un MSGBOX pidiéndome si deseo crear una nueva consulta de paciente.
Espero haberme sabido explicar.
Gracias por vuestro apoyo y ayuda.

P.D. Soy super novato en esto de Access por eso os pido paciencia conmigo si no entiendo algunas veces las cosas que me expliquéis


-------------
Marcos José López de Dios



Respuestas:
Publicado por: rokoko
Fecha de publicación: 13/Octubre/2020 a las 19:35
Si te he entendido bien......
Tienes un campo llamado IDPaciente....

Prueba asi

If IsNull(Me.IDPaciente) or Me.IDPaciente=""Then
msgbox"Debes crear un ID Paciente"
'Aqui pondrias el codigo que tu quieras para crear esa id si quieres en este punto
Else
DoCmd.OpenForm "frmConsultaPaciente", acNormal, , "[NHistoria]=" & Me.IDPaciente
End if

Este codigo evalua IDPaciente si esta vacio o nulo, si lo esta te piede crear el id, sino, te abre el formulario frmConsultapaciente


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 20:03
 https://subefotos.com/ver/?4ad81276a04c042e1296ba23afdcabe1o.jpg" rel="nofollow"> 
 https://subefotos.com/ver/?19da4868a33cfef646a98d8a14a90968o.jpg" rel="nofollow"> 
Mira te comento si yo tengo creada ya la consulta del primer paciente pues me habré el segundo formulario con el nombre del ese paciente.
Pero si yo tengo seleccionado otro paciente y no tiene consulta creada es cuando me ha de decir si deseo crearla
Si la consulta ya esta creada no ha de decirme nada.
He probado tu código pero no me hace nada
Gracias por contestar


-------------
Marcos José López de Dios


Publicado por: mounir
Fecha de publicación: 13/Octubre/2020 a las 20:28
Hola!

He visto las imagenes que subiste y no me queda claro de que el "[NHistoria]=" & Me.IDPaciente sean iguales, y de hecho, sin poner ninguna condición siempre te abrirá el primer registro del formulario consultas, es decir, tu filtro no funciona.
Es mejor que pongas los nombres de las tablas y sus campos y como están relacionados para poder explicarte como se hace.

-------------
Un Saludo.


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 20:37
En un segundo lo subo

-------------
Marcos José López de Dios


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 20:44
 https://subefotos.com/ver/?34b4c16b8d9875d22a96054c0901725bo.jpg" rel="nofollow"> 
 https://subefotos.com/ver/?34b4c16b8d9875d22a96054c0901725bo.jpg" rel="nofollow"> 
 https://subefotos.com/ver/?99bf42dbdb0cb2982611f56e510c4a1ao.jpg" rel="nofollow"> 
Aquí esta lo que me pedias si que puedo decirte que el filtro me lo hace


-------------
Marcos José López de Dios


Publicado por: rokoko
Fecha de publicación: 13/Octubre/2020 a las 21:06
Yo personalmente haria una relacion de unoa varios con IdPaciente
Un paciente puede tener varias consultas

Tabla Paciente

IdPaciente  Autonumerico  clave principal
Nombre
Apellidos
Etc

Tabla consultas
IdConsulta  Clave principal autonumerico
NumeroConsulta  Numerico
IdPaciente Numerico
Etc

Relaciona las dos que estan en negrita , de esta forma relacionas paciente con sus consultas. asi con todos los datos del paciente en otras tablas

Y para el NumeroConsulta si quieres que cada paciente sea correlativo 1,2,3,.... tendras que crearte una funcion que te lo haga automatico o ponerla a mano.....tambien podria ser texto personalizada, por ejemplo el IdPaciente/NumeroConsulta


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 21:13
rokoko es que la relación del IDPaciente se relaciona con el NHistoria y un paciente solo puede tener una historia 

-------------
Marcos José López de Dios


Publicado por: JoseraGR
Fecha de publicación: 13/Octubre/2020 a las 21:17
Buenas

Yo he estado liado tambien con el tema de consultas, y tenia un problema muy parecido al tuyo. Mi problema estaba en la línea que tu señalas.

DoCmd.OpenForm "frmConsultaPaciente", acNormal, , "[NHistoria]=" & Me.IDPaciente

Siempre me mostraba el formulario en blanco, lo solucione de la siguiente forma:

DoCmd.OpenForm "frmConsultaPaciente", acNormal, , "[NHistoria]= ' " & Me.IDPaciente & " ' "
Esto te funcionaria siempre que las variables sean de tipo STRING.


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 21:29
JoseraGR el tema es que a mi me habré la consulta por el paciente seleccionado en el formulario directorio de pacientes, pero lo que necesito es que si selecciono un paciente que no tenga creada una consulta, pues que me salga un msgbox, diciéndome si quiero crear una consulta sobre ese paciente seleccionado

-------------
Marcos José López de Dios


Publicado por: rokoko
Fecha de publicación: 13/Octubre/2020 a las 21:35
Vale, pero una historia puede tener diferentes consultas??
Vamos que cada vez que el paciente va al medico abres una consulta en la misma historia?

Es que la relacion idPaciente Nhistoria no la veo clara, Nhistoria es un campo calculado....
Creo que podrias poner todo en solo 4 tablas

Tabla Paciente  con todos sus datos personales y el numero de historia como campo clave
Tabla Consultas relacionado con Nhistoria  de uno a varios, en una historia puede haber varias consultas.....
Tabla trabajadores
Tabla datos clinica

Que diferencia hay entre la tabla expediente clinico y tabla consulta paciente?' , ademas veo que aqui repites nombre y apellidos en 3 tablas......algo que no se deberia hacer nunca en una base de datos.....






Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 21:44
La diferencia son datos médicos

-------------
Marcos José López de Dios


Publicado por: rokoko
Fecha de publicación: 13/Octubre/2020 a las 21:56
Publicado originalmente por Marcos141964 Marcos141964 escribió:

La diferencia son datos médicos
Pues esa seriala 5º tabla tabien relacionada con nHistoria

Veo que en tabla consulta paciente tienes fecha y hora, o sea que entiendo que si creas un registro por cada consulta??  Vero que es una relacion 1 a 1, no me cuadra.....


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 22:02
rokoko como he dicho al principio soy muy novato y que tengais paciencia conmigo
 


-------------
Marcos José López de Dios


Publicado por: mounir
Fecha de publicación: 13/Octubre/2020 a las 22:22
Hola!

rokoko tiene razón, fijate en una cosa que tienes y analizala, por ejemplo, la fecha de baja la pones en la tabla del paciente, un paciente puede tener varias bajas a lo largo de su vida, no?, entonces tendría que ir en otra tabla que acepte varias bajas para el mismo Id o Nº de historia, no.
Esta base de datos, es para una mutua, o clinica privada?. Así te podríamos enfocar mejor.

-------------
Un Saludo.


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 22:32
Hola Mounir la fecha de baja no se refiere a cuando este enfermo se refiere a cuando se de de baja de la clínica privada, no es mutua

-------------
Marcos José López de Dios


Publicado por: mounir
Fecha de publicación: 13/Octubre/2020 a las 22:40
Hola!

Lo mismo da, un paciente se da de baja y vuelve a la clinica y asi sucesivamente.

Hoy es un poco tarde, mañana intentaré hacerte un ejemplo, y de paso practico un poco. jeje

-------------
Un Saludo.


Publicado por: Marcos141964
Fecha de publicación: 13/Octubre/2020 a las 23:12
Gracias Mounir buenas noches

-------------
Marcos José López de Dios


Publicado por: rokoko
Fecha de publicación: 13/Octubre/2020 a las 23:32
Esta es una base de datos que hice para una amiga.
Pillala un poco como idea para el tema de las relaciones y consultas de cada cliente.  Es de una tienda de dietetica. Un cliente tiene varias consultas a lo largo de su vida....

En este caso la relacion es por id del cliente, porque lo he llamado asi, pero podria llamarle NHistoria tranquilamente......


https://www.dropbox.com/s/38sqobankzwalae/Mirianuska.rar?dl=0


Publicado por: Marcos141964
Fecha de publicación: 14/Octubre/2020 a las 11:08
Gracias la mirare

-------------
Marcos José López de Dios


Publicado por: Marcos141964
Fecha de publicación: 22/Octubre/2020 a las 22:36
Tema solucionado 
Private Sub Form_Load()
If Me.cmbnhistoria = "" Or IsNull(Me.cmbnhistoria) Then
Select Case MsgBox("Este paciente no tiene consulta, Deseas crearla?", vbYesNo Or vbQuestion Or vbDefaultButton1, "Atención")
Case vbYes
Exit Sub
Case vbNo
DoCmd.Close acForm, "frmConsultaPaciente"
End Select
End If
End Sub

Gracias


-------------
Marcos José López de Dios



Imprimir página | Cerrar ventana