Access - Campo contador en formulario

 
Vista:

Campo contador en formulario

Publicado por mostru (14 intervenciones) el 18/03/2007 19:24:50
Hola buenos días a todos.

Haber si me orientais un poco en mi problema.

Tengo un formulario principal [Pacientes].
Un subformulario [Controles] (IdControl, fecha, NºControl...etc.) en vista hoja de datos.

Lo que quiero es que para cada paciente en el subformulario Controles me numere automaticamente e incrementalmente "NºControl" empezando desde el 1 en cada paciente.

He estado viendo hilos pero son sobre Cuadros de texto no sobre campos en vista hoja de datos.

Ejemplo: NºControl fecha INR Dosis
1 01/01/01 2.5 32.5 mg
2 02/01/01 2.6 32.5 mg
3 03/01/01 2.5 31.5 mg



Muchas gracias a todos y un saludo.
Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Campo contador en formulario

Publicado por Mazinger Z (27 intervenciones) el 18/03/2007 20:14:27
Establece a "Autonumérico" el campo No.Control en el diseño de la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Enrique (1299 intervenciones) el 18/03/2007 21:33:12
Hola j.leal:
He visto que antes de publicar tu consulta en este Foro, ya habías hecho la misma en el Foro de Access & VBA del Búho, en la que te han constestado varios usuarios sin que hayas obtenido ninguna respuesta satisfactoria, simplemente porque ninguno de ellos ha llegado a entender que lo que necesitas es que los registros del subform en vista hoja de datos, se numeren correlativamente desde el 1, pero por cada Paciente, por eso no sirve usar un Autonumérico, porque el campo NºControl debe permitir duplicados y un Autonumérico no los pemite.

Pués bien, para conseguirlo, lo primero que tienes que hacer es realizar lo que te indiqué en la constestación a tu mensaje del pasado dia 16 sobre:
"Registro dependiente de otro registro en subform", al cual por cierto no has respondido, posiblemente porque no lo hayas visto o porque no te ha dado la gana, pero sin eso no te será posible conseguir lo que quieres por muchas vueltas que les dés y por muchos Foros que consultes porque ten en cuenta que se necesita limitar los registros del subformulario a los del Paciente que haya en el Formulario Principal, antes de numerarlos.

Una vez que hayas hecho eso, <<si quieres>> seguimos hablando sobre la solución al problema, la cual con unas cuantas líneas de código en el Evento adecuado quedaría resuelto.

Un saludo
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por mostru (14 intervenciones) el 19/03/2007 18:08:38
Hola Enrique despues de leer este mensaje he modificado la estructura de la tabla controles incluyendo dentro de esta "semana2". ya que la idea que he modificado es ahora mas sencilla.
Ahora tengo dos tablas:

Pacientes(IdPaciente, Nombre, IdFarmaco,....)
Controles(IdControl,IdPaciente,Fecha, INR, IdFármaco....Lunes,Martes..X,J,V,D, DosisTotal,...)

Probé lo que me comentastes, pero no me funcionaba, creo por problema de relaciones en las tablas. LLegué a a conclusión de unificar ambas tablas(controles y semana) pues es un único y mismo acto médico. A partir de ahí sigo modificando todo lo que conlleva el cambio. Pero aún así no encuentro solución a la pregunta formulada.
Intenté hacerlo como formlarios continuos, que la solución que me dió Mazinger si me funciona, pero en esta vista no me admite un subformulario inculido dentro de Controles.

Pido perdó por no responder a vuestras respuestas tan proto como quisiera, el primero yo, pero mis obligaciones(que no vienen al caso) igual que teneis tambien los que nos prestáis vuestra ayuda sin miramientos ni condiciones y malgastais vuestro tiempo en ayudar a alguien, bien mostru, j.leal....cualquier principiante como yo que lo necesite sin esperar nada a cambio. Pero en ningún momento he ocultado mi identidad en ninguno de los foros porque mi correo me delata como puedes ver(j.lealmostru@...) y no lo oculto, que podría hacerlo, pero me gusta mostrar tanto mis defectos como pregono, como mi resignación en problemas que no he podido resolver y seguramente no resolveré.
Un saludo y gracias por tu respuesta-reconvención desde Sevilla

Mostru.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Enrique (1299 intervenciones) el 19/03/2007 19:14:39
Hola J.Leal:
No tiene mayor importancia que contestes o dejes de hacerlo, lo que pasa es que al ver que hacías una nueva consulta relacionada con la anterior sin decir si te había servido o no mi respuesta, pensé que no la habías visto o no la habías entendido. Sigo pensando que tienes que relacionar el Form Principal con el SubForm, mediante un campo común que exista en ambos y establecer las Vinculaciones en el SubForm y ahora que has unificado las tablas Controles y Semana en una sola, más fácil lo tienes.
No se si servirá de algo dado que no consigues hacer lo anterior, pero centrándome en la consulta de este mensaje, este sería el código para numerar correlativamente los NºControl del SubFormulario, por cada Paciente:

Private Sub Form_BeforeInsert(Cancel As Integer)
If Form.RecordsetClone.RecordCount = 0 Then
[NºControl] = 1
ElseIf Form.RecordsetClone.RecordCount > 0 And IsNull([NºControl]) Then
[NºControl] = Form.RecordsetClone.RecordCount + 1
End If
End Sub

NºControl debe ser Numérico, permitir Duplicados y lo pongo entre corchetes por el signo ( º ) aunque posiblemente no sean necesarios. Este sistema numerará los Campos NºControl por cada Paciente, solo si al introducir nuevos datos en el SubFormulario, este tiene los registros filtrados con los de un determinado Paciente, porque si los tiene todos, funciona igual que un Autonumérico y de poco serviría.

Un saludo
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por mostru (14 intervenciones) el 19/03/2007 20:36:01
Hola Enrique gracias por tu ayuda.

Inserto el procedimiento evento (antes de insertar)en Controles y me sale un error de sintaxis. y no logro averiguar que le pasa, está todo correcto.
Me señala esta linea
Elself Form.RecordsetClone.RecordCount > 0 And Is Null([NºControl]) Then

Gracias por todo.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Enrique (1299 intervenciones) el 19/03/2007 21:07:07
Hola J.Leal:

Lo que pasa es que IsNull es todo junto y tu lo has puesto separado: Is Null. observa que en mi ejemplo está junto.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por mostru (14 intervenciones) el 19/03/2007 22:04:13
Hola de nuevo

Lo pongo separado, y me sigue dando en error.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Mazinger Z (27 intervenciones) el 20/03/2007 05:40:52
Intenta con esto en el evento "Después de Actualizar" del cuadro de texto o combo idpaciente del form controles:

nocontrol=Nz(Dcount("idpaciente","controles","idpaciente"= & idpaciente),0)+1

La idea es que dependiendo del paciente que selecciones, el campo nocontrol tome el valor correspondiente.

Para que funcione, idpaciente debe ser numérico y nocontrol debe ser un campo no autonumérico en la tabla controles.

Esto sirve sólo al agregar nuevos registros.

Si lo que quieres es numerar los registros que ya tienes, podemos usar otro método.

Coméntame cómo te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por mostru (14 intervenciones) el 20/03/2007 09:18:30
Hola Mazinger
Pongo la expresión que me dices y me sale ¡error de compilación!!!, se esperaba expresión!!!!.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por mostru (14 intervenciones) el 20/03/2007 09:18:30
Hola Mazinger
Pongo la expresión que me dices y me sale ¡error de compilación!!!, se esperaba expresión!!!!.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Mazinger Z (27 intervenciones) el 20/03/2007 10:28:52
Debes ponerla entre los Private Sub y End Sub del evento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por mostru (14 intervenciones) el 20/03/2007 10:42:14
Lo he hecho, pero es creo que lo que pretendo es que cada Paciente(idPaciente)
tenga Controles numerados empezando por el uno, el problema es que el IdControl es autonumerico y no puedo cambiarlo, ya que cada idControl es un acto médico diferente y único. Ejemplo:

Paciente1....
nºcontrol=1; fecha=01/01/07.....IdControl=1..
nºcontrol=2; fecha=01/02/07.....IdControl=2..
nºcontrol=3; fecha=04/03/07.....IdControl=3.
nºcontrol=3; fecha=01/04/07.....IdControl=4..
nºcontrol=4; fecha=04/08/07.....IdControl=8.
nºcontrol=5; fecha=01/09/07.....IdControl=9.
Paciente.2...
nºcontrol=1; fecha=05/05/07.....IdControl=5..
nºcontrol=2; fecha=12/06/07.....IdControl=6..
nºcontrol=3; fecha=20/07/07.....IdControl=7..
Paciente.3...
nºcontrol=1; fecha=05/10/07.....IdControl=10..
nºcontrol=2; fecha=12/11/07.....IdControl=11..
nºcontrol=3; fecha=20/12/07.....IdControl=12..


Ya que el autonumérico me lo incrementara por fecha de control y son actos distintos.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Mazinger Z (27 intervenciones) el 20/03/2007 12:42:50
Pero "nocontrol" no lo es.

Si quieres mándame un ZIP con tu base de datos y lo resolvemos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Marisabel (1 intervención) el 21/03/2007 15:17:21
Hola!, bueno he leido toda la discusion del problema q tienen con el formulario.. pues yo no soy experta en el tema, pero estoy en la necesidad de conocer un poco ya q estoy haciendo un formulario y tengo problemas con el codigo.... presisamente en el nº del contrato.... Voy a plantear mi problema a ver si me pueden ayudar pues considero q es mucho mas sencillo q el de mostru....
ok, tengo diseñado un contrato de ventas, este contrato debe llevar un numero de contrato "CodContrato" pero este numero de contrato debe estar compuesto por el codigo de la vendedora que esta en un checkbox "NomEjecutiva" y un numero q aumente en 1 con cada registro nuevo "NumContrato", es decir el numero del contrato deberia ser algo como:
01-000001 = NomEjecutiva-NumContrato
el evento podria ser al hacer clic sobre la casilla..... Nose si me pueden ayudar porfavor!!!! de verdad he buscado codigo parecido pero no logro q funcione......
Muchas Gracias!!
Marisabel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Campo contador en formulario

Publicado por Mazinger Z (27 intervenciones) el 21/03/2007 19:28:16
esta funcion cuenta cuántos "id" existen en "tabla", le suma uno y le da formato de "000000".

Para este ejemplo se necesita un cuadro de texto llamado "numcontrato" en el form.


numcontrato=nomejecutiva & "-" & format(nz(dcount("id","tabla"),0)+1,"000000")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar