SQL - sencilla cuestión

 
Vista:

sencilla cuestión

Publicado por Alicia (3 intervenciones) el 22/11/2005 10:55:04
soy nueva en esto de las bases de datos y tengo un pequeño problema (o al menos yo creo que no debe de ser muy difícil). Tengo una base de datos con una tabla grande de donde puedo coger los datos que uso en un subformulario. en dicho subformulario escribo nombres de personas(que ya están en la tabla, al menos la mayoría). Lo que yo quiero es conseguir que si he puesto el nombre en el campo que le toca a la hora de escribir el apellido sólo me deje escribir aquellos apellidos que en la tabla grande acompañan a ese nombre( p.e., si yo tengo en la tabla Luis García y Luis Pérez, cuando yo escriba "Luis" en el campo " nombre", en el campo apellido sólo me aparezcan García y Pérez y no todo el listado de apellidos; y conseguir también que se "autocomplete"(no sé si es el término correcto) de manera que sólo escribiendo una "G" ya se escriba "garcía". Y lo mismo con el 2º apellido). Creo que es con algo de SELECT DISTINCTROW porque lo he visto en otra base de datos, pero a mí no me sale. estoy super-perdida y agradecería cualquier orientación
Mil gracias
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

RE:sencilla cuestión

Publicado por Isaías (5072 intervenciones) el 22/11/2005 18:12:34
¿Subformulario?, entonces es Access, Visual Basic, o cualquier otra herramienta de desarrollo.

Bueno, esta funcion deberia hacerla el aplicativo, ya que si lo envias a la base, el costo de ir tecleando y buscando, sera alto.
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

RE:sencilla cuestión

Publicado por alicia (3 intervenciones) el 22/11/2005 20:29:10
No sé qué es el aplicativo... en fin estoy muy muy perdida. Pensaba que no sería muy dificil, pero ya no sé. lo cierto es que he conseguido que me lo haga para el primer nombre (con un SELECT DISTINCTROW [catalogo_general].apellido, [catalogo_general].nombre FROM [catalogo_general] WHERE ((([catalogo_general].nombre)=[catalogo_general]![inventarios]![subformulario]![apellido]))ORDER BY [catalogo_general].apellido), pero esto es más bien un plagio de otra base de datos y no sé por qué no lo hace para los siguientes nombres. Sabes si podría ser alguna orden de Visual Basic lo que me falta?. No sé si queda clara mi cuestión, siento mucho no poder ser más explicita, pero mis escasos conocimientos me limitan mucho....
en fin, si me pudieras echar una mano te lo agradecería mucho (de hecho, ya te agradezco el mensaje)
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

RE:sencilla cuestión

Publicado por Isaías (5072 intervenciones) el 23/11/2005 16:39:12
Alicia

Analicemos tu solicitud:

"Lo que yo quiero es conseguir que si he puesto el nombre en el campo que le toca a la hora de escribir el apellido sólo me deje escribir aquellos apellidos que en la tabla grande acompañan a ese nombre"

Esto es VB en tu formulario (aplicativo), nada que ver con la base de datos.

Si quieres ligar, lo que tecleas (o vas tecleando) con la base de datos, por cada letra tecleada (evento KEYDOWN o KEYUP, si no mal recuerdo) deberias "disparar" una consulta con un LIKE a tu base y rellenar tu formulario.

Esto, le costara mucho trabajo a tu servidor de base de datos.

Entonces la pregunta seria, ¿Tu objeto (datagrid o donde coloques los nombres) tiene dicha funcion?, seria mejor hacerlo ahi (en tu aplicativo) y no en la base de datos.

Espero haberme explicado.
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

RE:sencilla cuestión

Publicado por Alicia (3 intervenciones) el 23/11/2005 18:23:37
Igual no me expliqué yo: Tengo 2 cuadros combinados de un formulario uno nombres y otros apellidos. Para cada nombre tengo diferentes registros de apellidos. Quiero que al poner un nombre en el cuadro combinado nombre sólo me saque en el cuadro combinado apellidos aquellos del nombre que he introducido.
Sí, es lo que dices tu o VB o SQL. Me han dicho que se hace una consulta en SQL que era la de SELECT DISTINCTROW, pero con ella sólo consigo que ejecute una vez la consulta para el primer nombre que introduzco y luego ya no saca más que los apellidos de ese primer nombre.
Sabrías ´cómo solucionarlo?
Muchas gracias
Alicia
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

RE:sencilla cuestión

Publicado por Isaías (5072 intervenciones) el 23/11/2005 22:27:20
Y te comente que deberias mandar a ejecutar un Query a tu base, cuando termines de capturar el nombre, algo asi como:

SELECT * FROM NOMBRES WHERE NOMBRE = @Variable_Nombre

Y lo que te regrese (Apellidos), vuelves a re-llenar tu 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