Aprendiendo a trabajar con macros en desarrollo de base de datos de Access.

Estoy en el aprendizaje de trabajar con macros en Access. Tengo una base de datos con tres formularios (EMPRESA, CONTACTOS y TIPOLOGÍA). Las tablas EMPRESA y CONTACTOS estan relacionadas de 1 a varios pues de una empresa voy a tener varios contactos. Debo clasificar a estos contactos con al menos una característica de su personalidad. Para ello creé otra tabla TIPOLOGÍA la cual no he relacionado con las anteriores. Solo he creado un campo de búsqueda desde CONTACTOS que se llama tipología y se despliega bien, me muestra las 27 características posibles. La tabla TIPOLOGÍA tiene cuatro campos (tipología, descripción, características y ¿cómo tratar y fidelizar este tipo de clientes?) Por ejemplo en un registro se puede leer: Tipología: Amigable; Descripción: Es un cliente de carácter afable, tranquilo y que siempre está sonriendo: es...;Características: Es amable y sensible, No tiene prisa y le gusta hablar y Se muestra muy receptivo en las conversaciones.; ¿Cómo tratar y fidelizar este tipo de clientes?: Necesitas ser muy puntual con lo que estás ofreciendo, hazle pensar en sus necesidades y muéstrale... Mi lista de Tipología es de 27 características. ¿Qué necesito lograr? Que cuando yo haga 1 click sobre el campo tipología que le declaré a ese contacto, por ejemplo ¨Amigable¨ me abra un formulario que me muestre específicamente el resto de los campos Descripción, Características y ¿Cómo tratar y fidelizar este tipo de clientes?

. Esto es con el fin de que mis negociadores y vendedores tengan herramientas para trabajar con el cliente.

2 respuestas

Respuesta
1

Y que es lo que quieres hacer, porque abrir un formulario basado en la tabla y filtrándola por esa cualidad (la tipología) para que solo se muestre esa, no creo que sea el problema.

Quizás (y es una sugerencia) añadiría un cuadro de lista con todas las tipologías, no sea que la asignada a ese contacto no sea la idónea (u otro sujeto diferente atendió al negociador) y se detecte otra tipología mas adecuada (y así poder seleccionarla en la lista y ...)

Respuesta
1

Vamos a ver si me explico. Claro que puedes hacerlo con macros, pero, si me permites un consejo, vete olvidándote de ellas. Una macro no deja de ser un trozo de código VB al que le han puesto un nombre en "cristiano" para realizar operaciones muy básicas. Por ejemplo, cuando en una macro le dices que vaya al siguiente registro, en realidad le estás diciendo

Docmd. Gotorecord,, acnext

Por eso te diría que con la tabla Tipología crees un formulario y en el evento Después de actualizar( o en Antes de actualizar, depende de como trabajes) del cuadro combinado Tipología del formulario Contactos cree un procedimiento de evento y entre Private Sub... y End sub puedes poner

docmd.openform"tipologia",,,,"tipologia='" & me.nombredelcombinado & "'",acformreadonly, acdialog

Me explico, Abre el formulario Tipologia, en quel registro en que el campo Tipologia sea igual al que acabo de seleccionar en el combinado, y ábrelo como sólo lectura y en vista diálogo.

bueno hice lo que me orientaste (a no ser quede mi parte haya mala interpretación) por eso repaso los pasos que di:

1-Abrí el formulario Contactos y en el campo Tipología fuí a eventos y declaré el Procedimiento de eventos como lo redactaste. Solo le corregí el acento de gí de Tipología. He revisado las mayúsculas y minúsculas para descartar esos detalles.

2-Hice  apartir de la tabla tipología un formulario. Lo que no encuentro entre tantas propiedades donde declararle que abra como solo lectura y en vista de diálogo. Sé que en algún sitio lo he visto con anterioridad.

mira lo que sale cuando ejecuto

luego le digo depurar y me sale esto

¡Tengo que acabar de ponerme para aprender esta parte oculta del access!

Supongamos que tengo una tabla Tipología, como( en breve)

Y en cualquier formulario tengo( aunque no haría falta, ya que se puede poner en cualquier evento)

Voy a seleccionar Autosuficiente. En el mismo momento que lo selecciono

Está sin "refinar", pero es sólo para la explicación y el código es exactamente igual al que tienes puesto

Private Sub Tipología_AfterUpdate()
DoCmd.OpenForm "tipología", , , "tipología='" & Me.Tipología & "'", acFormReadOnly, acDialog
End Sub

¡Gracias! ya resolví parece que alguna diferencia entre la primera y la segunda variante era la más correcta, mira las diferencias de mayúsculas y minúsculas. Por favor recuerda que estoy aprendiendo, dime si esas diferencias pueden alterar el resultado esperado. Por favor necesito seguir en contacto contigo. Hace varios años me ayudaste con esta misma BD, debes tener mi correo [email protected]. Antes era .co.cu, ahora es .cu solamente. Te he escrito pero me rebotan, tal ves sea por eso. Mil gracias.

1-docmd.openform"tipologia",,,,"tipologia='" & me.nombredelcombinado & "'",acformreadonly, acdialog

2-DoCmd.OpenForm "tipología", , , "tipología='" & Me.Tipología & "'", acFormReadOnly, acDialog

hola nuevamente: si cambia el nombre de mi formulario ¿dónde cambia aquí en nombre?

Private Sub Tipología_AfterUpdate()
DoCmd.OpenForm "tipología", , , "tipología='" & Me.Tipología & "'", acFormReadOnly, acDialog
End Sub

Es que mi administrador de redes me pide que haga cambios en los nombres de los objetos de mi BD para identificarlos como que son del área de Negocios y debo ponerle GN_ antecediendo a los nombres que ya tenían y eso me ha resultado una traba en cosas que ya tenía resueltas como este caso que ya habíamos valorado. Por eso la pregunta anterios respecto al código.

Alexis Poll Cosme

hola nuevamente: si cambia el nombre de mi formulario ¿dónde cambia aquí en nombre?

Private Sub Tipología_AfterUpdate()
DoCmd.OpenForm "tipología", , , "tipología='" & Me.Tipología & "'", acFormReadOnly, acDialog
End Sub

Es que mi administrador de redes me pide que haga cambios en los nombres de los objetos de mi BD para identificarlos como que son del área de Negocios y debo ponerle GN_ antecediendo a los nombres que ya tenían y eso me ha resultado una traba en cosas que ya tenía resueltas como este caso que ya habíamos valorado. Por eso la pregunta anterios respecto al código.

Si sólo va a cambiar el nombre del formulario tienes que ponerlo como

Docmd. Openform"GNTipologia", lo demás igual ya que los nombres de los controles no cambian

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas