Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Un formulario llamemosle algo complicado

Estas en el tema de Un formulario llamemosle algo complicado en el foro de Bases de Datos General en Foros del Web. y si le coloco al formulario horas el campo nparte (que es autonumerico) y al numeros el mismo campo... hay alguna forma de hacer algún ...

  #31 (permalink)  
Antiguo 07/03/2008, 04:04
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

y si le coloco al formulario horas el campo nparte (que es autonumerico) y al numeros el mismo campo... hay alguna forma de hacer algún filtro o algo?
  #32 (permalink)  
Antiguo 07/03/2008, 04:09
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Puedes abrir un form en modo entrada de datos de esta forma:

DoCmd.OpenForm "NombreForm", acNormal, , "clave=" & Me.Txtclave,acFormAdd

Un saludo
  #33 (permalink)  
Antiguo 07/03/2008, 04:34
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

creo que no te sigo -.-
  #34 (permalink)  
Antiguo 07/03/2008, 05:08
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

va a ser mejor que comente todo lo que quiero hacer, porque si es a trozos igual no me explico bien.

Veamos, la primera ventana es un formulario en el que se introduce una contraseña. Al introducir la primera contraseña, tengo que filtrar la información, esto es, que cuando llegue al siguiente formulario (llamado horas) se rellene el campo de nombre y la fecha (si aún no están creados) y si ya hay un registro con ese nombre y la fecha de hoy que vaya al último creado. (este filtrado lo tengo que hacer).

En el formulario horas (que es donde está metido el famoso contador de horas), hay un botón que está al lado dle campo de texto llamado unidades. al darle a ese botón me lleva a otro formulario en el que yo puedo añadir una cantidad. Lo hace regular, ya que me añade la cantidad al primer registro y lo que quiero es que lo haga en el registro actual del de hora. (tengo que hacer el filtrado).

Y creo que de momento vamos a empezar con eso XD. Alguna forma de hacerlo?
  #35 (permalink)  
Antiguo 07/03/2008, 05:22
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Lo primero que yo haria es organizar mis tablas. No Tienes un campo Identificador en la atbal operarios. Imagina que tienes dos que se llaman exactamente igual (Luis Garcia Garcia) por ejemplo, como vas a distinguir a cada uno. Es prioritario que tengas un campo IdOperario. Puede ser, por ejemplo, el dni, o un numero que tu pongas.

En la tabla de partes de trabajo, en lugar del nombre deberias tener el campo IdOperario. Las relaciones entre las tabla y la clave primaria de la segunda, depende de por ejemplo, si un empleado puede tener varios partes, o solo uno, o uno al dia, etc etc.

Pero en principio, solo añadiendo ese campo a las dos tablas, va a ser muy sencillo saber que empleado se ha "logeado" en el primer form, comprobar si en el segundo hay algun regsitro de la fecha actual (es decir, en la tabla de partes de tarbajo). Si lo hay, se abre en ese regsitro. Si no lo hay, se abre en un regsitro nuevo para ese empleado, con su idEmpleado y la fecha actual.

Y lo ultimo sera aun mas sencillo.

un saludo
  #36 (permalink)  
Antiguo 07/03/2008, 05:29
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

hay un campo en la tabla operario que es autonumérico y que se llama codigo operario. podemos utilizar ese si es más sencillo. Luego si el jefe quiere, en el formulario partes de trabajo, puedo añadirle un botón para que vea a qué trabajador pertenece el codigo operario y pueda ver todos sus datos.

De todas formas, recuerdo que juego con 4 formularios, numeros (donde se ingresa la clave), horas (donde los trabajadores añadirán los datos), unidadnumeros (en el que ponemos la cantidad de unidades y después lo muestra en el formulario horas) y un último formulario que es partes de trabajo, en el que todos los datos que se han rellenado en el formulario horas, se ven ahí.
  #37 (permalink)  
Antiguo 07/03/2008, 06:26
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

No es que sea mas sencillo (que lo es), es mas logico, evitaras errores, y no hace falta añadir un boton, solo cambiar la cosulta origen para inclir el campo nombre donde quieras, previa relacion con la tabla operario. Vamos a tardar menos si me la envias a mi correo, de verdad que es mas facil de hacer que de explicar.

Un saludo
  #38 (permalink)  
Antiguo 07/03/2008, 06:57
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

ya te la he enviado con todo lo que creo que necesitas.
  #39 (permalink)  
Antiguo 07/03/2008, 07:34
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Ya te la he reenviado.


Un saludo
  #40 (permalink)  
Antiguo 07/03/2008, 10:20
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

ya la he probado y me he fijado en que falla en lo mismo que me fallaba a mi. Cuando tu añades un segundo registro y le das a añadir unidad, pones la cantidad, pero al volver al registro marca un 0 redondo. Esto es porque a la hora de añadir unidad crea un nuevo registro o_O
  #41 (permalink)  
Antiguo 10/03/2008, 02:45
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

he exportado las las tablas y formularios de la base de datos que me pasaste y me da un error al pasar del formulario numeros al de hora cuando le doy a aceptar. El error me lo marca en esta línea:

IdOperario = Nz(DLookup("Codigo Operario", "operario", "clave=" & Me.Txtclave), 0)
  #42 (permalink)  
Antiguo 10/03/2008, 02:51
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Y que error te da??? La descripcion del error, por que cambien varias cosas, nombres de tablas, variables, etc etc.

Un saludo
  #43 (permalink)  
Antiguo 10/03/2008, 02:59
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

como no me funcionaba, lo que hice fue intentar hacerlo con las tablas qeu yo tenía, en el botón aceptar, lo dejé así:

Private Sub CmdAceptar_Click()
Dim IdOperario As Long

IdOperario = Nz(DLookup("codigo operario", "operario", "clave=" & Me.Txtclave), 0)


'Comprobamos si existe la clave introducida
If IdOperario <> 0 Then
'comprobamos si hay algun registro para este operario en la tabla Partes de tarbajo para
'La fecha actual, si existe abrimos el registro, si no abrimos uno nuevo
If DCount("*", "partes de trabajo", "codigo operario=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#") > 0 Then
DoCmd.OpenForm "hora", acNormal, , "codigo operario=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#"
'cerramos el form numeros
DoCmd.Close acForm, Me.Name
Else
DoCmd.OpenForm "hora", acNormal, , , acFormAdd
Forms!hora![codigo operario] = IdOperario
'Forms!hora!fecha = Date'Esta no hace falta ya que tienes en la tabla Partes de trabajo
'El campo fecha con valor predeterminado la fecha actual
'cerramos el form numeros
DoCmd.Close acForm, Me.Name
End If
Else
MsgBox "La contraseña introducida no corresponde a ningun empleado", vbCritical, "CONTRASEÑA ERRONEA"
End If
End Sub

y me sale este error:

  #44 (permalink)  
Antiguo 10/03/2008, 03:11
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Como codigo operario tiene un espacio (fue una de las cosas que cambie), has d eponerlo entre corchetes:

[codigo operario]

Un saludo
  #45 (permalink)  
Antiguo 10/03/2008, 03:16
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

ahora me sale el siguiente error:



Creo que he puesto bien todos los corchetes, te pongo en rojo la línea que me marca que está mal:

Private Sub CmdAceptar_Click()
Dim IdOperario As Long

IdOperario = Nz(DLookup("[codigo operario]", "operario", "clave=" & Me.Txtclave), 0)


'Comprobamos si existe la clave introducida
If IdOperario <> 0 Then
'comprobamos si hay algun registro para este operario en la tabla Partes de tarbajo para
'La fecha actual, si existe abrimos el registro, si no abrimos uno nuevo
If DCount("*", "[partes de trabajo]", "[codigo operario]=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#") > 0 Then
DoCmd.OpenForm "hora", acNormal, , "[codigo operario]=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#"
'cerramos el form numeros
DoCmd.Close acForm, Me.Name
Else
DoCmd.OpenForm "hora", acNormal, , , acFormAdd
Forms!hora![codigo operario] = IdOperario
'Forms!hora!fecha = Date'Esta no hace falta ya que tienes en la tabla Partes de trabajo
'El campo fecha con valor predeterminado la fecha actual
'cerramos el form numeros
DoCmd.Close acForm, Me.Name
End If
Else
MsgBox "La contraseña introducida no corresponde a ningun empleado", vbCritical, "CONTRASEÑA ERRONEA"
End If
End Sub
  #46 (permalink)  
Antiguo 10/03/2008, 03:26
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

No veo la imagen del error:

ponla asi, sin los corchetes en el nombre de la tabla:

If DCount("*", "partes de trabajo", "[codigo operario]=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#") > 0 Then

te estaras dando cuenta de que la recomendacion de no usar espacios, ni acentos etc etc es bastante util.

Un saludo
  #47 (permalink)  
Antiguo 10/03/2008, 03:34
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

me sigue marcando como mal XD.

si modifico el nombre del campo... no tengo que volver a poner las relaciones no? >.< lo que no puedo cambiar es el nombre de la tabla, porque como que no me gustaría tener que poner todas las relaciones >.<
  #48 (permalink)  
Antiguo 10/03/2008, 03:47
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Pero cual es la descripcion del error??

un saludo
  #49 (permalink)  
Antiguo 10/03/2008, 03:48
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

este:

  #50 (permalink)  
Antiguo 10/03/2008, 03:52
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Y en que linea??? Ese error no me cuadra con l aliena que indicas.

un saludo
  #51 (permalink)  
Antiguo 10/03/2008, 03:57
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

me la da en esta línea:

If DCount("*", "partes de trabajo", "[codigo operario]=" & IdOperario & " AND Fecha=#" & Format(Date, "mm/dd/yyyy") & "#") > 0 Then
  #52 (permalink)  
Antiguo 10/03/2008, 04:09
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

A ver si encontramos que esta mal:

La tabla se llama partes de trabajo???

El campo se lllama codigo operario??? Es de tipo numerico???

el campo Fecha es de tipo fecha???

La variable IdOperario tiene algun valor al llegar aqui???

Un saludo
  #53 (permalink)  
Antiguo 10/03/2008, 04:13
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

La tabla se llama partes de trabajo???
si

El campo se lllama codigo operario??? Es de tipo numerico???
a las dos te digo que si

el campo Fecha es de tipo fecha???
le he puesto de formato fecha y sigue dando el mismo error.

La variable IdOperario tiene algun valor al llegar aqui???
a esto no se responderte -.-
  #54 (permalink)  
Antiguo 10/03/2008, 04:17
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Pon antes de esa intruccion un msgbox IdOperario

Es importante que el campo sea de tipo fecha, de no serlo la sintaxis seria distinta.

Un saludo
  #55 (permalink)  
Antiguo 10/03/2008, 04:19
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

me sale 14, que coincide con el código operario de la clave que pongo
  #56 (permalink)  
Antiguo 10/03/2008, 04:22
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Pos no se, yo creoq eu la sentencia esta bien, a mi me funcionaba. No se que puede estar mal.

un saludo
  #57 (permalink)  
Antiguo 10/03/2008, 04:41
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

vale, he vuelto a mi copia de la base de datos (hago copias por si me cargo todo >.<) y he vuelto a la bd tal y como la tenía el viernes XD. He exportado las tablas y formularios de tu BD y como no las podía sustituir porque las que había en mi BD tenían relaciones, les he añadido un 2 en el nombre (excepto PartesDeTrabajo) y al final si que me funciona.

Ahora bien, me sigue fallando a la hora de introducir las unidades. Veamos, yo he probado con el primero empleado y me funciona. Después probé con otro empleado y si que me hacía un nuevo registro, peeero, cuando he ido a añadir una nueva unidad a ese registro, las unidades se me han añadido en un tercer registro en la tabla PartesDeTrabajo.

Con lo cual, actualmente tengo 3 registros en PartesDeTrabajo, uno con el operario 14, otro con el 13 y otro con las unidades qeu yo quería añadir en el 13

No se si me he explicado bien.
  #58 (permalink)  
Antiguo 11/03/2008, 02:14
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

no hay alguna forma de hacer lo que pregunto?
  #59 (permalink)  
Antiguo 11/03/2008, 03:24
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 9 meses
Puntos: 18
Re: Un formulario llamemosle algo complicado

Tienes un cuadro de texto en el que figura el numero de operacion (o algo asi), no lo tengo delante por que estoy trabajando en otro sitio. Mira si al abrir el form de las unidades hay algo en el crudro de texto donde esta el numero de orden.

Un saludo
  #60 (permalink)  
Antiguo 11/03/2008, 03:37
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Un formulario llamemosle algo complicado

veamos, yo tengo el campo nparte (autonumérico). En ambos formularios está ese campo. El problema es que el formulario hora (el principal) tiene un nparte y al abrir el formulario unidad a través de un botón, el nparte que tiene unidad cambia. Lo que quiero es que tenga el mismo número que el de hora para así guardarse en la misma línea de la tabla PartesDeTrabajo.

no se si te he llegado a explicar bien
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:02.