Access - Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

   
Vista:
Imágen de perfil de Felix

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Felix (72 intervenciones) el 22/05/2015 01:43:14
Hola tengo una tabla A y varios campos Fch1, Fch2, Fch3,...Fch10. Un formulario con un cuadro de texto que para cada uno. Como puedo hacer que al ingresar la fecha en al evento...... (no se luego de actualizar o al cambiar).., esta se añada a todos los registros existentes para actualizarse pero que en lugar de la fecha se almacene un numero (esto supongo me ayuda a ahorrar espacio de memoria, si no es así el caso no importa) en todo caso cuando requiera revisar las fechas sepa cual es en realidad. aunque lo mas importante para mi es que en todos los registros este la misma fecha de cada campo.
Gracias por el apoyo
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
Imágen de perfil de Norberto

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Norberto (432 intervenciones) el 22/05/2015 13:58:22
Hola.

Para cada una de las fechas pones el siguiente código (te pongo el de la primera y cambias los números).

1
2
3
Private Sub Fch1_AfterUpdate() 'Cambia el uno por 2, 3, 4, etc.
    ActualizarFecha 1 'Éste también lo tienes que cambiar
End Sub

Al final del módulo pones este otro código:

1
2
3
4
5
6
7
8
9
10
11
Private Sub ActualizarFecha(nFecha As Integer)
    Dim mySQL As String
 
    DoCmd.RunCommand acCmdSaveRecord
    mySQL = "UPDATE [Tabla A] SET Fch" & nFecha & " = #" & Format(Me.Controls("Fch" & nFecha), "mm/dd/yy") & "#"
    DoCmd.SetWarnings False
    DoCmd.RunSQL mySQL
    DoCmd.SetWarnings True
    Me.Refresh
 
End Sub

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Felix

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Felix (72 intervenciones) el 22/05/2015 15:24:04
Gracias por su colaboración.
He ingresado el código y luego de seleccionar e cuadro de texto TxFch1 donde me aparece el calendario introduzco la fecha requerida luego al saltarme al otro cuadro de texto, me aparece un mensaje que dice que Introduzca el valor del parámetro Fch1 y un cuadro para ingresar supongo la fecha, escribo la fecha y aparece el siguiente error

Se ha producido el erro 3073 en tiempo de ejecución
La operación debe usar una consulta actualizable


pulso depurar
y aparece resaltado en amarillo lo siguiente

DoCmd.RunSQL mySQL

A propósito, preferiría que junto con el mensaje en el cuadro donde pide introducir el valor del parámetro se pueda desplegar el mini calendario que si lo tengo en el cuadro de texto inicial.

Nota: Con la disculpas del caso he cambiado el nombre del cuadro de texto para fechas con la adición del prefijo Tx puesto que me sirve para saber el control que estoy usando quedaría TxFch1 por ejemplo.
También he hecho los cambios seg{un me has indicado incluyendo el nombre de los cuadros de texto
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
Imágen de perfil de douglas

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por douglas (280 intervenciones) el 23/05/2015 19:52:28
Es complicado entender a veces lo que buscan imagino que tienes una base con eventos con distintas fechas
y para no cambiarlas de una en una las quieres cambiar todas al mismo tiempo
yo haría algo distinto
pondría una tabla llamada fechas relacionada con tabla1 por idfecha con nfecha

Tabla Fechas .......................Tabla Tabla 1
id fecha ------Relación--------nfecha
Fech ..................



Al cambiar en Fechas la Fech se cambiara automático en todos los registros tabla1 ya que estarán relacionados.

Como existe relaciones puedes ingresar fech ya sea directo al formulario o por medio de una consulta
SI ocupas ejemplo me lo pides

Buena Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Felix

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Felix (72 intervenciones) el 24/05/2015 01:24:05
Claro me hubiera gustado que me envíes un ejemplo de lo que explicas. En cuanto a la solución a veces son muchas las alternativas y la mejor, es la mas simple que lleve a lo mismo y esta generalmente las tienen personas mientras mas experto o experiencia tenga en access. y En cuanto a diseños de pasa lo mismo, a veces cada persona quiere resolver su problema como lo tiene, aun cuando pueda existir un mejor diseño que no lo conoce,.... se aferra a lo que tiene, y aquí muchos han ayudado a resolver esos casos aunque parecería mejor de otro modo, y algunos efectivamente proponen diseños diferentes como es el caso tuyo y eso también es muy bueno. Pues cada problema expuesto en este foro muestra un reto para resolverlo así como se plantea, y eso es lo interesante en programación. No comprendo mucho lo que me explicas pero lo que me envía Norberto es justo en la situación en que estoy.... en un formulario donde se muestra los registros de las asistentes, tengo muchas fechas para registrar cada evento de asistencias, con una fecha todos los que han estado presentes se registran con la misma fecha de un día. pero en otro día se tiene otra fecha por eso lo de varios campos con fecha.
Aparentemente funciona bien asi como lo tengo con los codigos que me ha enviado Norberto solo que algo no tengo bien pues me sale el error mencionado anteriormente en DoCmd.RunSQL mySQL
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
Imágen de perfil de Norberto

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Norberto (432 intervenciones) el 25/05/2015 09:10:35
Hola de nuevo.

Plantéalo como te dice Douglas y evitarás problemas.

En la tabla principal eliminas las fechas y añades un campo IdFecha y le das valor predeterminado 1.

Creas la tabla Fechas con un campo IdFecha e igual valor predeterminado y los 10 o más campos de fecha y las introduces en un único registro. Esto es muy importate.

Haces una consulta para relacionar ambas tablas y la usas en formularios, informes, etc.

Te adjunto un ejemplo.

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
2
Comentar
Imágen de perfil de Felix

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Felix (72 intervenciones) el 25/05/2015 20:10:55
Gracias probare como lo explicas ahora, que según dices da mas ventajas, Sin embargo y solo por la duda, que habría pasado con lo del código donde el error se ve en DoCmd.RunSQL mySQL ??? Que significa esto???
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
Imágen de perfil de Norberto

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Norberto (432 intervenciones) el 26/05/2015 15:22:18
Hola.

No te lo puedo asegurar, pero por el error que me dices el problema debe de estar en lo que intentas actualizar, pero veamos todo por partes para aclararte las dudas.

El comando RunSQL ejecuta una consulta contenida en una cadena de texto. Se podría poner directamente DoCmd.RunSQL "UPDATE [Tabla A] SET ...". El problema es que si surge un error, es más costoso saber el motivo. Si cargamos la expresión en una variable y, como es tu caso, la ejecución de la sentencia da un error, podemos aprovechar la detención del código para poner en la ventana de inmediato Print mySQL. Eso nos mostrará el contenido de la cadena y podremos ver mejor si falta o sobra algo (paréntesis, comilla, espacio en blanco, etc).

Una vez dicho esto, veamos los dos problemas que se producen en tu caso. El primero es que te pide un parámetro. Esto ocurre cuando parte de la sentencia SQL no coincide con un elemento existente. Por ejemplo hacemos referencia a un control de un formulario con Form!NombreFormulario!NombreControl para una condición o lo que sea, y hay un error en alguna parte o el formulario está cerrado. Entonces, al no existir ese elemento, lo toma como un parámetro y te pide el valor. Eso se soluciona revisando bien la expresión.

En cuanto al error propiamente dicho, tiene toda la pinta de que lo que intentas actualizar no es una tabla sino una consulta que por su diseño no permite modificaciones. Si realmente se trata de una tabla, no debería dar ese error. Sólo por curiosidad. ¿Qué has puesto tras UPDATE donde yo he puesto [Tabla A]?

Un saludo,

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

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por richard (5 intervenciones) el 24/05/2015 04:02:40
No te compliques la vida, usa triggers.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Felix

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Felix (72 intervenciones) el 25/05/2015 20:05:56
Podrías explicarte con un ejemplo?
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
Imágen de perfil de douglas

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por douglas (280 intervenciones) el 26/05/2015 01:25:41
Creo que lo paso es que tenias abierta la base en uso exclusivo en ese momento, y el ejemplo estaba dado a una actualizar de forma masiva, podría generarte errores ya que no dominas muy bien el código que te dieron mySQL.

Otro problema que podrías haber tenido es estableciendo los filtros, ya que si es de un formulario establecido tendría que poner el ID
en un strim DIM.

Es probable que tal vez sea difícil y te generaría error tras error, es por eso que Norberto y yo te llevamos a una solución que pudieras dominar y te diera la solución rápida.
Ahora yo probé la de respuesta de Norberto y es genial pero explicar en que te fallo tendríamos que verlo

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
1
Comentar
Imágen de perfil de Felix

Hacer que con un formulario todos los registros fecha automaticamene se almacenen con el mismo dato

Publicado por Felix (72 intervenciones) el 28/05/2015 14:51:17
Estimados amigos, saludos
Tanto buscar he encontrado la falla que cometí cuando pase el cídigo que me envio Norberto ha sido un espacio. el nombre del campo en la tabla lo tenia como Fch 1; mientras en el código esta unido, el desaparecer el espacio en todos los nombres del campo me ha solucionado el problema.
Lo que me has enviado Douglas es muy interesante y creo que optare por considerar un nuevo diseño para que los datos se puedan ver en una consulta no obstante me parecería que de ese modo aumento mas bytes y se puede hacer mas pesado (no estoy seguro)
Muchisímas gracias Norberto, ya solucione el caso era un error mio
Muchisímas gracias Douglas por tus aportaciones
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