Buscar datos en varias tablas con cuadro combinado

En un formulario Independiente "F_ReservaEntradas", tengo un cuadro combinado "CB_DNI" que busca los datos en la tabla "T_Personas".

Lo que necesito es que si no se encuentran los datos en la Tabla " T_Personas", los busque en la tabla "T_ReservaEntradas", y si tampoco los encuentra, entonces introducir los datos por primera vez manualmente y que se queden grabados en la tabla "T-ReservaEntradas"

2 Respuestas

Respuesta

José María como desconozco su formulario y datos le dejo una idea del código que debe ir en el evento Después de actualizar el cuadro combinado CB_DNI.

 If DCount("*", "T_Personas", "DNI=" & Me.CB_DNI) = 0 Then
   If DCount("*", "T_ReservaEntradas", "DNI=" & Me.CB_DNI) = 0 Then
      'Adicionar registro
      'Abrir formulario independiente y pasarle como argumento el CB_DNI, es decir, al abrir este
 'formulario el campo DNI debe llenarse con el valor del argumento
      'Grabar haciendo un INSERT, algo como
      'CurrentDb.Execute = "INSERT INTO T_ReservaEntradas(DNI, campo2, campo3) VALUES(" & Me.CB_DNI & "," & Me.campo2 & "," & Me.campo3 & ")"
   End If
 End If

Enrique realmente ahora confirmo usted no sabe en que parte del mundo está. No complique las respuestas con teroría barata. Sea concreto por favor hágase a un lado siga respondiendo en lawebdelprogramador donde se manifiesta como anómimo y nadie le refuta sus mentiras.

Enrique deje de insultar y dejemos que el usuario sea quien dé la opinión sobre las respuestas.

Ante todo respete y deje de estar ofendiendo, porque no acepta los aportes de otras personas y lo que afirma de la búsqueda es totalmente falso, lejos con su "Análisis Forense", el DNI debe estar lógicamente en el origen de datos del cuadro combinado. Por mi parte entiendo, que al elegir un DNI se busque en otras tablas, así de simple sin tanta paja. Vuelvo y le comiendo siga en lawebdelprogramador allí no encuentra quien le refute sus respuestas incompletas etc.

Respuesta

Si CB_DNI busca en T_Personas, es que es su origen de datos y la opción mas sencilla es un botón de alternar que 'alterne' el origen de datos del combo para utilizar T_ReservaEntradas en lugar de T_Personas

Otra alternativa es aunar ambas tablas con una 'consulta de unión' y así solo hay un único conjunto de datos en el que buscar.

Para rellenar los datos del formulario (una vez localizado el DNI en el combo) se supone que los obtendrá de columnas ocultas (en el combo) y que se copian al formulario.
Si el DNI no figura en el combo, es el momento de rellenar a mano los datos, insertar el registro en la tabla y refrescar el combo (si se continua con el formulario abierto).

Eduardo: vuelve a leer la exposición del autor del hilo y deja de inventar entornos que se adapten a tus limitados conocimientos.
Access te supera por todos los lados y solo aportas soluciones que copias de cualquier parte sin analizar si valen para algo y es algo que demuestras en tu forma de programar.

Hagamos un análisis forense:
Datos que aporta el usuario
.- Formulario independiente (sin origen de datos)
.- Combo que busca en la tabla 'T_Personas' (esto es: su Rowsouce es la tabla usuarios)
.- Si no localiza el dato buscado intentarlo en otra tabla 'T_ReservaEntradas'

Una búsqueda en un combo se genera en tiempo de ejecución con los datos que el usuario introduce y estos datos (la referencia a localizar) no se guarda en ninguna parte (de hecho si se puede acceder a ella: pero es otro tema)

En su respuesta le ofrece que busque en la tabla 'T_Personas' y si no localiza que lo intente en la tabla 'T_ReservasEntrada'
¿Qué se le solicita que busque? ... el dato activo en el combo >> Me.CB_DNI

Ese dato siempre lo localizara porque existe en el conjunto, pero NO es el dato que el usuario introduce para la búsqueda.
Conclusión: respuesta no adecuada para el propósito, con un planteamiento erróneo y escaso conocimiento del funcionamiento de un objeto ComboBox.

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

Entiendo que no conozca la teoría (es lo clásico de los que copian y 'si funciona': les sonó la flauta).

No es un insulto (los suyos y continuados si lo son y los ignoro: me da lastima).
Afortunadamente conozco a paisanos suyos, que si tienen formación base y son excelentes programadores con los cuales se puede hablar y compartir experiencias (lo que lo convierte a Ud. en la excepción a evitar).

Si tiene algo que aportar (aunque sea copiado): adelante

Pero no se meta con las aportaciones del resto de usuarios, créame que mas de la mitad de los lectores le superan en conocimientos aunque no se molesten en participar activamente (con usuarios como Ud. es complicado).

Este será mi ultimo mensaje en este hilo, su creador tiene repuestas que podrá aplicar en función de sus intereses.

Eduardo vuelve atrás y tanto en este foro como en el otro lee tus intervenciones, y si no publico mi correo real en el otro foro porque me harte de los que piden directamente soluciones para problemas de otros buscando respuestas ajenas apropiándose de la autoría.
Mi alias en el otro foro lo expresa con claridad: aquí Sí publico, fuera No.

Si no los hubieras llenado de Spam (tanto a uno como al otro foro) no habrías despertado curiosidad para ver deseabas lograr, si era visitas en tu pagina o vender recursos creando falsas necesidades.

Cuando crezcas en conocimientos podrás entender mis respuestas (algunas ya las has adoptado: bien por ti, sigue creciendo)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas