Access - ACTUALIZAR CAMPO VBA

   
Vista:

ACTUALIZAR CAMPO VBA

Publicado por Jose (9 intervenciones) el 28/11/2017 14:23:08
Hola!
Tengo un formulario dentro del cual hay un campo texto que necesito cambie su contenido dependiendo de a travez de que boton lo llame. He hecho esto con otros campos numericos y funciona, pero con este campo de texto no lo logro. Estoy usando este codigo...

1
2
3
4
5
6
DoCmd.OpenForm "FOR_NOTAS"
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord Then
    TIPO.Value = "CT"
 
End If

Aqui abro el formulario, voy a nuevo registro y solicito modificar el valor del campo. Pero no funciona. Con campos numericos me ha funcionado perfecto siempre.

Ayuda!!!!!!!!!!!
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

ACTUALIZAR CAMPO VBA

Publicado por Anonimo (814 intervenciones) el 29/11/2017 01:23:36
La sintaxis utilizada allá donde funciona (con números o con lo que sea), no debe de ser la misma que la aquí utilizada.

Lo que mas me llama la atención es la redundancia de acciones.

Si se le indica (ordena, manda o lo que se tercie) que abra 'en un registro nuevo' ¿Por qué se utiliza el condicional de 'si es un nuevo registro ....' ?.

Si hace lo que se le manda (abrir en un nuevo registro) la condición sobra y si no lo hace ... entonces es muy poco fiable ese entorno.

Normalmente para asignar un valor a un cuadro de texto de un formulario, bastaría definir al objeto con el clásico 'Me.', pero solo funciona si se esta en el mismo formulario, cuando se abre un formulario nuevo desde otro formulario (como creo que es el caso presente) para definir un objeto de ese formulario se necesita la ruta completa
Forms.FOR_NOTAS.TIPO = "......"

Mientras no se finalice el código actual no 'se cambia' al formulario recién abierto a no ser que se le pase el foco para que sea 'el objeto activo' (por eso la referencia 'resumida' no hace lo que se desea que haga, ese objeto de momento es 'invisible' para el porque no es propio, sino ajeno)
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

ACTUALIZAR CAMPO VBA

Publicado por Jose (9 intervenciones) el 29/11/2017 21:33:52
Hola! Gracias!
Entiendo lo de la sintaxis, no soy experto, normalmente me ayudo con internet para lograr lo poco que alcanzo lograr.

Comprendo lo de la redundancia, lo voy a corregir, es que asi lo uso en el otro formulario ya que en ambos hay acciones que guardan el registro, entonces si se necesita hacer la diferencia ya que algunos comandos solo deben ejecutarse si el registro es nuevo, no ya guardado. Gracias por la observacion.

El cotrol no es un cuadro de texto, es un campo de la tabla cuyo valor de datos es texto. La idea es que si yo abro el formulario con un botos, anote en ese campo CY, CT, CD, ya que estos valores me van a permitir filtrar algunos informes. Por eso debe ser diferente dependiendo el boton con que se abra.

Es decir, el codigo es igual para cada boton, excepto en el texto a ingresar en ese campo.

Con lo del focus que me indicas, gracias, no tenia claro eso.

Si tienes alguna sugerencia para arreglar mi problema te lo agradeceria demasiado.
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

ACTUALIZAR CAMPO VBA

Publicado por Anonimo (814 intervenciones) el 29/11/2017 21:53:42
Si el dato se desea asignar a un campo de una tabla, el formulario carece de sentido (se resuelve con una consulta de actualización, con una de inserción ...) pero no con un formulario.

Los formularios son un método para manipular las tablas, un simple intermediario, para actuar con una tabla esta tiene que ser su origen de datos (su 'recordsource') y para acceder a los campos del registro lo hace mediante cuadros de texto (o el objeto adecuado al tipo de dato)

Si un campo de una tabla no tiene su 'representación' en el formulario (mediante un objeto que lo represente) ese campo no será accesible y según ello ese es tu problema: deseas asignar un valor sin pasar por su 'secretario' (el cuadro de texto o ...) así que 'no te escucha ni hace caso'.

En fin, también pudiera darse el caso de que estemos viendo lo mismo desde puntos de vista diferentes y ... quizás no lleguemos a entendernos.
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

ACTUALIZAR CAMPO VBA

Publicado por Jose (9 intervenciones) el 29/11/2017 22:21:01
Si, si, de hecho creo que no logro trasmitir la idea.

Te adjunto un archivo con un ejemplo exacto de lo que necesito y de la falla que me genera. Tal vez sea mas practico!

Gracias nuevamente.
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

ACTUALIZAR CAMPO VBA

Publicado por Anonimo (814 intervenciones) el 30/11/2017 01:05:46
Si lo que has adjuntado es una 'copia fiel', el primer error (y de bulto) es la confusión en el nombre del control (o controles) ya que es erróneo (se le añade una 's' por arte de magia).


Pero ese no es el problema, el problema (si me permites una comparación en otro entorno), es que llamas por teléfono a casa para que preparen la cena y sin haber llegado a ella (la casa a la que has llamado con eso de la cena) quieres haberla degustado y ya estar en pijama ....

Por mucho que se abran formularios, solo se podrá acceder a ellos directamente cuando se finalice el código actual y se salga del formulario actual.

Mientras no se cumplan esa condiciones el 'otro' formulario es un elemento ajeno y no se puede interactuar con el de forma directa (si de forma indirecta).

Copio el código correcto para el botón numero uno y al resto los pones en marcha cuando comprendas la metodología y un consejo sano:

El mejor libro sobre Access es la ayuda del propio Access (F1): dedícale tiempo porque tu problema en la ayuda viene muy bien explicado, el como se interactúa con los formularios o como se desencadenan los eventos de los formularios al navegar entre ellos.

1
2
3
4
5
6
7
8
Private Sub Comando0_Click()
DoCmd.OpenForm "DATOS", , , , acFormAdd
'DoCmd.GoToRecord , , acNewRec <== esto iría a un nuevo registro del formulario actual (pero no puede: es independiente)
Forms.datos.DATO3 = "CD"
'DoCmd.GoToControl "DATO1" <== en el formulario actual no existe, solo hay tres botones ......
Forms.datos.SetFocus
Forms.datos.dato1.SetFocus
End Sub
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

ACTUALIZAR CAMPO VBA

Publicado por Jose (9 intervenciones) el 30/11/2017 01:59:51
No, claro que no es copia fiel, es un ejemplo rápido que te hice para tratar de explicarme mejor, usando el mismo codigo.

Comprendo el ejemplo de los dos formularios abiertos, pero en la aplicación original lo primero que hace el codigo es cerrar el primer formulario, dejando en primer plano el formulario donde se termina la operación, así que no tengo problemas con las indicaciones de nuevo registro, ira a campo etc, todo eso me funciona genial ahí y en el resto de la aplicación. Únicamente mi problema era que no se modificaba el campo.

Probé tu código y me funciona genial, muchas gracias.

Resolví mi situación con un código directamente en el campo, pidiéndole modificarse al ingresar a el y usando un valor por defecto, de manera que, el valor por defecto lo tiene el formulario y con el código del primer botón no accedo a ese campo y con el código del segundo botón, accedo a el, generando el otro código que me regresa el valor requerido, así, genero dos valores diferentes para el mismo campo dentro de la tabla y logre por fin generar el filtro para el informe.

Agradezco demasiado tu tiempo, muy amble!!!
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

ACTUALIZAR CAMPO VBA

Publicado por Anonimo (814 intervenciones) el 30/11/2017 14:28:59
Tu respuesta me obliga a reincidir en mi consejo sobre que localices información VERAZ (la ayuda de Access es muy buena, próxima y barata) sobre como funciona 'ese invento de los eventos'

Que funcione por casualidad no significa que se estén haciendo bien las cosas y (lo mas seguro) que un intento de llevarlo a otra maquina o actualizar 'algo' suponga un error tras otro (los alfileres solo son un parche temporal ante un diseño incorrectamente planteado).
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

ACTUALIZAR CAMPO VBA

Publicado por Alexander Muñoz (23 intervenciones) el 01/12/2017 17:00:28
Hola, y si simplemente al abrir ese formulario, que asumo, depende de una tabla, por omisión los registros son nuevos, porque no pones en ese campo particular como Valor predeterminado "CT" y te ahorras ese codigo.
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

ACTUALIZAR CAMPO VBA

Publicado por Jose (9 intervenciones) el 04/12/2017 02:27:03
Es que lo que necesito es que ese campo tenga una leyenda diferente dependiendo de la ruta de acceso a la tabla. Por eso en el ejemplo indicaba que, si uno el boton 1, el campo debia llevar un texto, el boton 2, otro texto, de manera que a travez de consultas pueda separar los informes que puedo dar desde esa tabla. Me explico?
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
Revisar política de publicidad