Establecer valores predeterminados variables.

Tengo un form DOCUMENTOS donde varios campos pueden ser iguales a lo largo de varios registros.
Quisiera establecer valores en algunos campos para que me sirvan como predeterminados para una cantidad de registros que he de crear en un momento dado.
Por ejemplo: Si voy a fichar libros de Omero, el campo AUTOR será siempre Omero, el campo LETRA sera FIL=Filosofía, el SOPORTE, Libro, etc...
Y quisiera poder introducir datos en cualquiera de los campos del Form.
Quiero que al cargar el Form o eventualmente, desde un botón de comando, me apareciese el Form en blanco u otro Formulario nuevo para poder introducir los datos.
¿Es ésto posible?.
Gracias de antemano. Pedro.
Enhorabuena por tu continuo ascenso en el ranking de expertos.

1 respuesta

Respuesta
1
La solución puede ser variada, pero de todas las formas posible. A continuación te indico dos ejemplos que te servirán de ayuda.
1º Una solución podría ser incluir como etiquetas de los campos del formulario botones de alternar sustituyendo las típicas etiquetas que incluye access vinculadas a los cuadros de texto. Como estos controles sólo admiten dos valores, cuando se activara un botón se podría añadir a su evento AfterUpdate las instrucciones que nos permitan controlar el valor predeterminado del cuadro de texto asociado.
Ej:
If BtnAlt_Soporte Then
Soporte.DefaultValue = Soporte.Value
Else
Soporte.DefaultValue = ""
End If
Con estas instrucciones conseguimos que si el botón esta activado, se tome como valor predeterminado para el siguiente registro el valor actual del campo.
2º La siguiente opción ('más larga'), consiste en abrir otro formulario como el actual ('pero sólo con la posibilidad de dar de alta registros') y asignarle a la propiedad valor predeterminado de los campos del nuevo formulario los valores de los campos que se muestran en el formulario actual, pero sin incluir los valores de la clave principal.
De entre los dos te recomiendo el primero, porque es más sencillo y te da un mayor control de los valores que quieres utilizar como predeterminados.
Hasta luego psanto.
Luis
Estimado Query:
Perdona que no haya podido solucionar el problema todavía. Todo se debe a mis pocos conocimientos.
He optado por la 1ª solución. He probado de muchas formas, pero me sigue sin funcionar tomando al pie de la letra las instrucciones que me has enviado.
Te agradecería, si es posible, me detallaras más extensamente ésta solución, pues creo que es la mejor, porque soy incapaz de sacarle punta al tema.
Te agradezco tu entrega y atención, pero no sé más.
Saludos, Pedro.
Lo que te comento lo pruebas con alguno de los cuadros de texto de tu formulario, si funciona haces lo mismo con el resto de los controles. De todas formas te enviaré una muestra a tu dirección de correo.
Pasos:
1º - Eliminas la etiqueta de un cuadro de texto 'Texto fijo que suele colocarse a la izquierda de los cuadros de texto'
2º - En su lugar pones un botón de alternar
3º - Le asignas como propiedad 'título' del botón el texto que mostraba la etiqueta y como nombre del control BtnAlt_NombreCampoAsociado
4º - En el evento AfterUpdate 'Después de actualizar' del botón añades las siguientes líneas:
' Suponiendo que el botón de comando se llame BtnAlt_Dirección (para controlar el valor del campo Dirección)
private sub BtnAlt_Direccion_AfterUpdate()
' Si el botón de alternar está activado
If BtnAlt_Direccion Then
' Asigna como valor por defecto del campo Dirección el valor que se muestra en estos momentos en el formulario
Direccion.DefaultValue = Direccion.Value
Else
' De lo contrario elimina el valor por defecto asignado al campo
Direccion.DefaultValue = ""
End If
end sub
Con este procedimiento, consigues que para un nuevo registro el campo Dirección te ofrezca ya un valor predeterminado.
Saludos. Query :-)
Con respeto a la respuesta que te dí la última vez, se me olvido :-( indicarte que si el valor predeterminado se le asigna a un control de tipo cuadro de texto no va encerrado entre comillas da un error. Las comillas son necesarias para que te lo interprete como texto.
Ej:
private sub BtnAlt_Direccion_AfterUpdate()
' Si el botón de alternar está activado
If BtnAlt_Direccion Then
' Asigna como valor por defecto del campo Dirección el valor que se muestra en estos momentos en el formulario
Direccion.DefaultValue = "'" & Direccion.Value & "'"
Else
' De lo contrario elimina el valor por defecto asignado al campo
Direccion.DefaultValue = ""
End If
end sub
De no hacerlo de esta manera, el valor que le asignamos lo interpreta como un nombre de campo, dándonos un mensaje de error #¿Nombre? #
Lo siento.
Ésta es la explicación a lo que me ocurría, viendo además los ejemplos que me has enviado.
He modificado todos los campos susceptibles de duplicación y me funciona todo de maravilla.
Muchas gracias por tu interés desmedido en éste problema.
Gracias de nuevo Luis.
Saludos, Pedro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas