Configurar formulario en ACCESS VBA

Hace años que no entraba a la página, creo que hasta ya perdí todos mis puntos jeje. Les cuento, estoy creando un formulario de contacto desde 0, tengo 5 días (pero con más de 12 hrs c/u) que empecé a aprender mediante tutoriales en youtube (soy novato), pero he logrado crearlo, excepto resolver dos necesidades.

1.- Ya no me deja agregar ningún nuevo registro, me sale el siguiente error: No se puede ir al registro especificado.

2.- Quiero que al hacer clic sobre una fila de registros del subformulario multicolumna, los datos se muestren de nuevo en los campos de texto del formulario principal, para ello intenté implementar la función Recortset, pero ignoro como hacerle. También me han dejado de funcionar los filtros de búsqueda que puse como campos combinados, ya que antes erróneamente quería intentar hacerlo mediante un solo cuadro de lista.

Les adjunto el archivo por si quieren verlo, gracias por el apoyo.

https://drive.google.com/open?id=1NhkyLte7DnSJPIAC9D1lRpHY_S3Ka52p 

1 Respuesta

Respuesta
1

Vamos por partes

1º No te deja añadir registros porque tanto en el formulario como en el subformulario tienes puesto en sus propiedades-Datos-entrada de datos=Sí. Lo has tenido que poner tú, ya que access, por defecto, le tiene puesto No. Esto lo que hace es ir siempre, al abrirlo, a un registro nuevo. Pero como por otro lado le tienes puesto Permitir agregar=No no te deja añadir. Access, por defecto, lo tiene puesto como Sí.

2º No es normal hacer un formulario con subformulario con un mismo registro de una única tabla. Lo normal es tener una tabla con los datos que nunca o casi nunca cambian, como puede ser, DNI, nombres, Fecha Nacimiento y otra con lo que si cambian. Y si vas a tener todos esos campos en una única tabla lo normal es hacer un formulario nada más.

3º Dicho esto, si quieres tener un mismo registro, arriba y abajo puedes hacerlo usando un formulario dividido, que te quedaría, como en la imagen(no me he molestado en distribuir y dar tamaño a los cuadros de texto

De forma, que si haces clic en algún registro de abajo, el encabezado, que no formulario, se "desplaza" a ese registro.

4º Si un campo, por ejemplo Pais va a tener como máximo 15 dígitos ¿Para qué darle 255? Lo mismo para los demás. Dale a los campos, más o menos, el tamaño de lo que van a contener.

5º Además conviene dejar en el formulario los botones de desplazamiento y si no quieres que estén tendrás que poner unos botones para que te vaya adelantando o retrocediendo en los registros.

6º Es un disparate usar los campos OLE para tener las fotos de alguien. Si son pocos contactos, aún, aún, pero si son muchos la base "engorda" hasta límites insospechados. Para eso está la función MSOFiledialog, o si las fotos van a estar en una misma carpeta no hace falta ni la función.

7º No pongas los campos del email como hipervínculo, para eso está

Application. Followhyperlink Email

Etc., Etc.

Muchas gracias por tus aclaraciones y enseñanza. Ahora estoy modificándolo para que no sea tan "rara" y sea un formulario "normal" siguiendo tus indicaciones. Al terminar te la comparto de nuevo para mis posibles siguientes dudas.

Listo, ya mejoré el formulario. Ahora solo tengo dos necesidades, los demás son ajustes como el tamaño de los campos, etc que comentastes.

Problema 1: No me aparece o no sé que me falta hacer, pero los campos de texto me aparecen vacíos y no me permite seleccionarlos en el formulario "Datos" para agregar un nuevo contacto.

Problema 2: No me funcionan los filtros de cuadros combinados de búsqueda ni el campo de texto de búsqueda por coincidencia dependiente del cuadro combinado por registro en el formulario principal "formulario".

Adjunto el archivo para mejor apreciación: 

https://drive.google.com/open?id=1h701qSUIepvFM4_Xr48sxp3DQNTQk7Pt 

Probablemente el problema esté en el código respecto a los filtros de búsqueda, pero como lo he hecho basándome en ejemplos y cambiando datos de proyectos ya realizados, no se cual sintaxis sea la correcta para resolver ambos problemas. Gracias de antemano, estaré al pendiente.

ACTUALIZADO.

Ya logré cambiar los atributos de los formularios para que me dejaran seleccionar los campos de los filtros de búsqueda por cuadros combinados y por coincidencia. Me marca un error a la hora de filtar o buscar por medio de ellos. "no se puede hacer referencia a una propiedad o a un método para un control a menos que el control tenga el enfoque". Creo que algo debe de ir diferente en el código, porque todo lo estoy haciendo de una combinación de otros proyectos jeje.

El otro problema es que aún no me muestra los registros del formulario "Datos" a la hora de agregar un nuevo contacto. ¿Será que no los he agregado correctamente o porque me saldrán en blanco?...

Adjunto el archivo actualizado:

https://drive.google.com/open?id=1KjpWJSDAr-eGuGFevOTxvAON7GhAt4pr 

ACTUALIZACIÓN: Ya logré resolver algunos problemas anteriores, peeeeeeeero ahora...

- Error mensaje "Introducir el valor del parámetro" en querer elegir alguna opción del cuadro de busqueda combinado por País y por Estado. (Quiero que funcionen los campos de búsqueda), pero no tengo idea cual sea el código correcto.
- Error mensaje "No se puede hacer referencia a una propiedad o a un método para un control al menos que el control tenga el enfoque".
- Al darle clic en Guardar en el formulario "Datos" (Sin ingresar ningún dato), "me marca un error: No se encontró el método o el dato miembro". Al parecer tiene que ver con la constante txt.Nombre
- No se guarda el registro de "Enlacedered" en la tabla.
- Se me borra el registro de Invitacion y se pone el campo de texto: #¿nombre?
- Al querer editar un registro desde el formulario principal, me sale un mensaje "El motor de base de datos de Microsoft Access no puede encontrar la tabla o consulta de entrada". Ya no sé que estoy haciendo mal, si ya debo dormir jaja.

Adjunto el archivo y disculpa mi ignorancia, solo me he basado en la lógica de ejemplos, pero no se sobre el código.

https://drive.google.com/open?id=1u-huIsJwX-CQX5NNm1tlfDfPc-hoSAQi 

Creo que lo mejor es que si quieres, repito, si quieres, mándame un mensaje, sólo el mensaje, a [email protected] y te mando un par de ejemplos, que es como mejor se ve.

Si lo haces, en el asunto del mensaje pon tu alias Arjuna, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas