martes, 19 de agosto de 2014

IDEARIO CUAUHTEMOC


I - RECONOCER EL MERITO EN LOS DEMÁS
Por la parte que hayan tomado en el éxito de la Empresa y señalarlo de manera espontánea, pronta y pública. Usurpar ese crédito, atribuirse a sí mismo méritos que corresponden a quienes trabajan a las órdenes propias, sería un acto innoble, segaría una fuente de afecto e incapacitaría para comportarse como corresponde a un ejecutivo.

II - CONTROLAR EL TEMPERAMENTO
Debe tenerse capacidad para dirimir pacífica y razonablemente cualquier problema o situación, por irritantes que sean las provocaciones que haya que tolerar. Quien sea incapaz de dominar sus propios impulsos y expresiones, no puede actuar como director de una empresa. El verdadero ejecutivo abdica el derecho a la ira.

III - NUNCA HACER BURLA
De nadie ni de nada. Evitar las bromas hirientes o de doble sentido. Tener en cuenta que la herida que asesta un sarcasmo, nunca cicatriza.

IV - SER CORTÉS
No protocolario, pero sí atento a que los demás encuentren gratos los momentos de la propia compañía.

V - SER TOLERANTE
De las diversidades que puedan encontrarse en la raza, color, modales, educación o idiosincrasia de los demás.

VI - SER PUNTUAL
Quien no puede guardar sus citas, muy pronto se constituirá en un estorbo.

VII - SI UNO ES VANIDOSO, HAY QUE OCULTARLO
Como el secreto más íntimo. Un ejecutivo no puede exhibir arrogancia ni autocomplacencia. Cuántas veces los fracasos de hombres bien conocidos confirman el adagio de “el orgullo antecede a la caída”. Cuando uno empiece a decir que otros empleados son torpes, o que los clientes son mezquinos o necios, habrá empezado a meterse en embrollos.

VIII - NO ALTERAR LA VERDAD
Lo que uno afirme, debe hacerlo reflexionando; y lo que prometa, debe cumplirlo. Las verdades a medias pueden ocultar errores, pero por poco tiempo. La mentira opera como un bumerang.

IX - DEJAR QUE LOS DEMAS SE EXPLAYEN
Especialmente los colaboradores, hasta que lleguen al verdadero fondo del problema, aunque tenga que escuchárseles con paciencia durante una hora. Haría uno un pobre papel como director, si dominara una conversación en vez de limitarse a encauzarla.

X - EXPRESARSE CONCISAMENTE
Con claridad y completamente, sobre todo al dar instrucciones, Nunca estorba un buen diccionario a mano.

XI - DEPURAR EL VOCABULARIO
Eliminar las interjecciones. Las voces vulgares y los giros familiares debilitan la expresión y crean malentendidos. Para demoler verbalmente a sus enemigos, los grandes parlamentarios nunca emplearon una sola expresión vulgar.

XII - ASEGURARSE DE DISFRUTAR EL TRABAJO
Es muy legítimo tener pasatiempos predilectos e intereses en otras cosas, pero si se estima como un sacrificio venir al trabajo, entonces lo que se necesita es un descanso y otra compañía en donde laborar.

XIII - RECONOCER EL ENORME VALOR DEL TRABAJADOR MANUAL
Cuya productividad hace posible la posición directiva y afirma el futuro de ambos.

XIV - PENSAR EN EL INTERES DEL NEGOCIO MAS QUE EN EL PROPIO
Es buena táctica. La fidelidad a la empresa promueve el propio beneficio.

XV - ANALISIS POR ENCIMA DE LA INSPIRACION O DE LA INTUICION
Este debe ser el antecedente para actuar.

XVI - LA DEDICACION AL TRABAJO
Beneficia al individuo, a la empresa y a la sociedad entera. En esto se asemeja a un sacerdocio.

XVII - SER MODESTO
Si no se comprende que nada tienen que ver con el valor de la persona -el tamaño del automóvil o de la casa, o el número de amigos y de los clubes a que se pertenece, o los lujos y el rótulo de la puerta del despacho- y si estas cosas significan para uno más que la tarea bien y calladamente cumplida y los conocimientos y el refinamiento espiritual para adquirirlos, entonces se precisa un cambio de actitud o de trabajo.

martes, 5 de agosto de 2014

Combos en cascada en un Formulario Continuo (Segunda parte)




En la primera parte hicimos los combos en cascada en un formulario continuo, el único problema, si se le puede llamar problema, es que Access es una base de datos relacional, por lo que hay que evitar la duplicidad de los datos que son innecesarios y en este caso estamos guardando en la tblAlmacen el campo Modelo.

Si observamos en la tblColores contamos con Modelo y este tiene un id irrepetible (Autonumerico), al hacer referencia a un color también lo hace del Modelo, por lo tanto no requerimos guardar ese dato, vamos a eliminarlo de la tblAlmacen y hacer que nuestro formulario continúe con la misma apariencia.

Mejor para tener dos diferentes hacemos una nueva tabla tblAlmacen1 con los mismos datos que tblAlmacen pero eliminando Modelo. Y con el asistente para formulario lo creamos, primero seleccionamos la tblAlmacen1 y agregamos todos los campos, buscamos la tblModelos y agregamos Nombre y de la tblColores agregamos solo Colores y nos queda algo así:


Le damos a siguiente, siguiente, tabular, siguiente, nombre del formulario le ponemos frmAlmacen1 y le damos finalizar, y nos abre algo como esto:

Observemos que solo tenemos el combo de color y abre todos los colores, nos falta el combo de los Modelos, es momento de jugar un poco, nos vamos a vista diseño y agregamos un combo con el asistente a la misma altura que el combo anterior y le decimos que deseo que el asistente busque los valores en una tabla o consulta y siguiente escogemos la tblModelos y seleccionamos los dos campos y siguiente hasta terminar, borramos la etiqueta, entramos a propiedades, nombre  le ponemos CboNombre y si lo abrimos tenemos esto:

Ahora vamos con el combo Color, en propiedades origen de la fila  y a los 3 puntos, entramos al generador de consultas y agregamos Modelo y en criterios [CboNombre]

Ahora seleccionamos lo de origen de la fila del combo Color

SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE (((tblColores.Modelo)=[CboNombre]));

Y le agregamos lo que está en Rojo:

Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE (((tblColores.Modelo)=[CboNombre]));”

Y en el evento al Entrar ponemos:

Private Sub Color_Enter()
Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE (((tblColores.Modelo)=[CboNombre]));"
End Sub

Y en el evento Después de actualizar del CboNombre ponemos:

Private Sub CboNombre_AfterUpdate()
  With Me.Color
  .RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE   (((tblColores.Modelo)=[CboNombre]));"
  .Value = .Column(0, 0)
   End With
  Me.Color.SetFocus
  Me.Color.Dropdown
End Sub


Esto con el fin de que al seleccionar un nombre me situé en el primer registro del combo color y me despliegue para seleccionar el que yo quiero. Ahora solo resta acomodar los controles algo como esto:

Fuente: Tomado de una explicación de Patxi Saenz.
Ahora podemos bajar el Archivo:
https://dl.dropboxusercontent.com/u/79048771/Combocontinuo2.zip

lunes, 4 de agosto de 2014

Combos en cascada en un Formulario Continuo (primera parte)

 


Vamos a hacer un ejercicio para poner los combos en cascada (que el segundo combo solo pueda tomar los valores que pertenecen al primero) en un formulario continuo (tomado de la forma clásica de Marius)
Comencemos creando una base de datos de entrada de almacén, para ello necesitamos tener como mínimo tres tablas, dos para los combos, la primera de Modelos y la otra de Colores y una tabla extra para crear el formulario de Entrada de Almacén.
Hacemos la primera tabla que llamaremos tblModelos con solo dos campos el id y Nombre como en la parte de arriba y la segunda que llamaremos tblColores de la siguiente forma:
Podemos observar que modelo es numérico, está basado en la tabla anterior y lo hacemos con el asistente para búsqueda:
Nos abre una ventana y seleccionamos: Deseo que campo de búsqueda busque los valores en otra tabla o consulta, seleccionamos la tabla tblModelos después los dos campos y aceptar hasta terminar y después nos dice que si guardamos, pues las relaciones cambiaron y le damos aceptar, esto nos sirve para que la tabla me ponga un combo con los valores de texto de la tabla modelo y además, sí creamos un formulario en automático nos pone el control como combo. Desde luego que lo podemos hacer poniendo los combos y estableciéndolos en origen del control, pero si Access lo hace por nosotros ¡Qué mejor!
Rellenamos las dos tablas más o menos así:

Ahora vamos a hace la tabla tblAlmacen con 4 campos, observemos que los campos Modelo y Color los hacemos igual con el asistente para búsqueda y seleccionamos sus tablas respectivas y cuando nos pide guardar lo hacemos
Vamos a ver cómo han quedado las relaciones de nuestras tablas y deberíamos de tener algo como esto:
Pero si observamos en la tblAlmacen Modelo está relacionado en la tblModelos con el Id, puesto que agregamos la relación para crear el combo en la tabla tblAlmacen y en realidad no la necesitamos, por tanto la borramos haciendo doble click sobre la línea y dándole a suprimir o del, quedando así:
Una vez aquí, vamos a hacer nuestro formulario con el asistente para formulario, escogemos la tblAlmacen y agregamos todos los campos y en seguida escogemos la tabla tblColores y escogemos solo el campo Colores y tenemos algo como esto:
Le damos click en siguiente, de nuevo siguiente, tabular y siguiente hasta terminar cuando nos dice que nombre le asignamos le decimos frmAlmacen y que lo abra para poderlo ver.
Comenzamos a agregar los primeros datos y nos damos cuenta que si seleccionamos Sandero solo me debería dar los 3 primeros (Verde, Rojo Y Azul), así que ponemos el formulario en vista diseño y nos vamos a propiedades del combo Modelo y en nombre se lo cambiamos a cboModelo, ahora seleccionamos el combo Color y en origen de la fila le damos a los 3 puntos del lado derecho, y nos abre el generador de consultas agregamos el campo modelo y en criterios [cboModelo] y cerramos y aceptamos los cambios:
De vuelta en propiedades en origen de la fila del combo Color copiamos toda la línea en un Word que se verá como esto:
SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE (((tblColores.Modelo)=[cboModelo]));
Y le agregamos lo que está en rojo:
Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE (((tblColores.Modelo)=[cboModelo]));"
En origen de la fila podemos borrar todo lo que tenía y en el evento Al entrar le damos a los 3 puntitos y generar código lo agregamos quedando así:
Private Sub Color_Enter()
Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE (((tblColores.Modelo)=[cboModelo]));"
End Sub
Nos vamos al cboModelo y en el evento después de actualizar agregamos lo mismo
Private Sub Modelo_AfterUpdate()
Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE (((tblColores.Modelo)=[cboModelo]));"
End Sub
Ahora solo nos falta poner el control Colores arriba de Color, pero podemos jugar para que aprecien para que sirve Color. Y comenzar a cargar el formulario.


Pueden bajar la muestra de como queda:


https://dl.dropboxusercontent.com/u/79048771/Combocontinuo2.zip