Access - Origen del control y sql

 
Vista:
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 26/12/2012 19:51:18
Intento meter una sentencia SQL en el origen de control pero me devuelve #¿Nombre?, lo unico que cambio respecto al editor para comprobar las sentencias es que meto la consulta entre parentesis porque me lo pide.
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
sin imagen de perfil

Origen del control y sql

Publicado por Marcelo (166 intervenciones) el 27/12/2012 21:57:15
¿Que control estas usando, cuadro de texto, combo box? Te comento que la instrucción sql no va en esa propiedad, contéstame para poder ayudarte
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 28/12/2012 17:04:57
En un cuadro de texto, aunque creo que tambien he probado con un cuadro combinado y tampoco funcionaba
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
sin imagen de perfil

Origen del control y sql

Publicado por Marcelo (166 intervenciones) el 29/12/2012 16:15:23
En el cuadro combinado y en la lista, el SQL va en el "Origen de la fia", y debes dar los anchos de cada columna, el indice es 0 cm para que no se vea, el resto. También se da el ancho total de la lista que es la suma de los anchos, por ejemplo tienes IdPersona, Nombre y Teléfono, IdPersona ancho 0, para que no se vea un n°, Nombre 5 cm y Telefono 4 cm, el ancho total es 9 cm. El campo clave va oculto. Has un combobox con asistente y mira las propiedades.

Origen de la Fila
Ancho de las Columnas
Número de Columnas
Ancho de la Fila
Columna Dependiente

El origen del control te recomiendo que lo dejes vacío

En el caso de el cuadro de texto puedes cargar el resultado de un SQL traido por una función agregada de dominio: DMin, DMax, Dbusqueda, DSuma, etc. Dime que quieres hacer precisamente y te envío una respuesta + precisa y didactica

El cuadro de texto puede tener 3 Orígen del control: (a) Independiente, es libre, el valor que escribes ahí el volátil, se pierde si no lo grabas o lo cargas en otro lugar, (b) el dependiente de un campo de la Tabla/Consulta "madre" del Formulario/Informe y (c) que es una expresión que no es lo mismo que un SQL, es una formula matemática o lógica.
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 30/12/2012 18:15:59
Yo lo que quiero es mostrar un valor concreto. En el origen de la fila ya tengo el rango de valores que quiero. El problema es que yo quiero valores de otra tabla no de la tabla que tiene ese formulario.
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 30/12/2012 18:34:56
De hecho aunque use el sistema de expresiones que pone en la pagina de microsoft es decir:
=[nombre_tabla]![nombre_campo]
Me da el mismo error
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
sin imagen de perfil

Origen del control y sql

Publicado por Marcelo (166 intervenciones) el 02/01/2013 12:53:19
Entonces tienes que ir a buscar el valor con una función agregada de dominio:

DBúsq(«expresión»; «dominio»; «criterios»)

DCont
DMáx
DMin
DProm
DSuma
etc...

«expresión» : Campo
«dominio» : Tabla/Consulta
«criterios» : Es opcional, es un criterio que se puede omitir y hacer en el caso que uses una Consulta en el Dominio.

Te recomiendo que veas la ayuda, ahí hay varios ejemplos de cómo usar estas funciones
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 02/01/2013 20:39:21
Gracias, parece que ahora se por donde seguir.
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 02/01/2013 21:08:09
Lo que me sucede que haciendo eso, no me deja cambiar de valor. He probado a poner CuadroProyecto.ControlSource = "" en varios eventos sobre todo en el gotfocus que parece el más lógico.
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
sin imagen de perfil

Origen del control y sql

Publicado por Marcelo (166 intervenciones) el 03/01/2013 12:50:12
Lo que tienes que hacer es dejar libre ControlSource, No uses ese método. Las funciones que te mencioné también se pueden usar en VBA. Se recomienda usar una variable String para texto, Long o Double para números

DBúsq(«expresión»; «dominio»; «criterios») en VBA se usa así:

---------------------------------------------------------

Dim varX As String

varX = DLookup("[Apellido]", "Empleados", "[IdEmpleado] = 1")

CuadroProyecto.Value = varX

---------------------------------------------------------

.Value es el método que debes usar

Se lee: "A la variable de texto varX cargar el Apellido del Empleado con IdEmpleado = 1 de la Tabla: Empleados y después cargue ese valor al cuadro de texto CuadroProyecto"

Es una simple asignación de valores.

Otra cosa respecto a los criterios de búsqueda: Fíjate que la función dice en el criterio IdEmpleado = 1 esto es muy poco flexible, siempre busca al empleado 1, eso puedes parametrizarlo eligiendo un valor desde un combo box basado en la Tabla: Empleados, tienes que crear el combo box. Reemplaza el 1 por el parámetro Forms![Formulario1]![Cuadro_combinado0] , quedaría así:

varX = DLookup("[Apellido]", "Empleados", "[IdEmpleado] = Forms![Formulario1]![Cuadro_combinado0] ")

Ahí puedes buscar el apellido de cualquier empleado seleccionado en el combo box.
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 03/01/2013 18:56:58
¿Pero en que evento lo pongo?, tendria que ser al crearse.
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
sin imagen de perfil

Origen del control y sql

Publicado por Marcelo (166 intervenciones) el 07/01/2013 18:30:53
en un combo box, cuadro de lista o Grupo de Opciones Después de actualizar, en un botón de comando Al Hacer Clic
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 08/01/2013 14:09:22
Es un combobox pero ni entra en ese código al abrir el formulario.
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
sin imagen de perfil

Origen del control y sql

Publicado por Alberto (16 intervenciones) el 14/01/2013 17:04:38
También me he fijado que si cambio el valor de un combobox me cambia el valor del de abajo.
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