Reflejar de unformulario a otro

Tengo un pequeño problema estoy iniciando en esto y a demás que me gusta estoy creando unas base de datos para mi trabajo de taxi, Mi problema es el siguiente: Tengo un formulario llamado NUEVO SERVICIO en donde tengo un único campo llamado CEDULA_ID, en el que yo al introducir el numero de cedula del cliente, me lo busca en la tabla CLIENTES, por medio de un evento que le puse, de existir el cliente el cierra el formulario y me habré otro formulario llamado TOMAS DE SERVICIOS, en este formulario tengo también el mismo campo llamado CEDULA_ID, como hago para que al cerrarse el formulario NUEVO SERVICIO me refleje el numero del cliente ya encontrado por este, y no tener que volver a colocarlo en el otro formulario.

1 respuesta

Respuesta
1
Una vez leído tu problema, seguro que te puedo ayudar. Pero aunque entiendo lo que dices no acabo de entender como pretendes hacerlo.
Hablas de un formulario con un sólo "campo", los formularios no tienen campos tienen "controles", (basados en un campo o independientes). Dices que "por medio de un evento que le puse" te abre otro formulario, y ¿Cuál es el evento que le pusiste?, porque igual sólo le estás diciendo que te abra el otro formulario. Explicate un poco más, aporta más datos, pues creo, pero puedo estar equivocado, que tu caso se soluciona con abrir un formulario filtrado.
Hola, garcías por atender, a la vez te pido disculpa por el retrazo al contestarte, no había visto bien la página. En relación a mi pregunta: Tengo un formulario de inicio, en el tengo un campo independiente llamado, CEDULA_ID, en el cual introduzco un dato numérico y en evento antes de actualizar de ese campo le coloque esto:
Private Sub ID_CLIENTE_BeforeUpdate(Cancel As Integer)
If DCount("CEDULA_ID", "CLIENTES", "[CEDULA_ID]=[forms]![NUEVO SERVICIO]![CEDULA_ID]") >= 1 Then
DoCmd.Close
DoCmd.OpenForm "TOMAS DE SERVICIOS"
Else
MsgBox "Cliente no Existe,debe registrarlo para continuar con el Nuevo Servicio", vbInformation, "REGISTRANDO NUEVO CLIENTE "
DoCmd.Close
DoCmd.OpenForm "CLIENTES"
End If
End Sub
El evento me busca el numero que introduzco, en la tabla CLIENTES, si este existe, me hable el form TOMAS DE SERVICIOS, eso esta bien. Lo que quiero es que es numero que existe también me lo refleje en un campo de ese formulario que me habré, que casualmente se llama igual al del anterior formulario " CEDULA_ID", porque en ese campo también tiene un evento al salir, que me trae todos los datos y registros del cliente existente. No se si con esto me entiendes. Gracias
No se esto es lo que buscar, porque no entiendo lo de "también me lo refleje en un campo de ese formulario que me abre", pero sigo con mi idea anterior de lo que quieres y con el problema que intuía, que no le dices que te abra el formulario filtrado, sólo que te lo abra. Para ello deberás cambiar esta línea:
DoCmd. OpenForm "TOMAS DE SERVICIOS"
Por esta otra
DoCmd.OpenForm "TOMAS DE SERVICIOS" ,,, [CEDULA_ID] = "ME.[CEDULA_ID]
Hola, gracias por tu atención, lo que me diste no me hace lo que quiero, te voy a dar un ejemplo de lo que quiero hacer.
En el formulario "NUEVO SERVICIO" en el único campo que tiene y se llama "CEDULA_ID", le introduzco por ejemplo el N° 8, como este existe en la tabla "CLIENTE" me abre otro formulario llamado "TOMAS DE SERVICIOS", en este formulario llamado "TOMAS DE SERVICIO, tengo varios campos y uno de ellos se llama "CEDULA_ID" : QUIERO QUE EL N° 8 ME APAREZCA AUTOMÁTICAMENTE EN EL CAMPO "CEDULA_ID" del formulario "TOMA DE SERVICIOS", actualmente tengo que hacerlo yo manualmente.
Vale. No entiendo exactamente lo que tienes ni lo que quieres, pero bueno:
Tendrás que pasarle el valor al segundo formulario con el primer formulario todavía abierto (también lo podrías meter en una variable, pero para esto igual es liarla).
Entonces deberías cambiar esto:
If DCount("CEDULA_ID", "CLIENTES", "[CEDULA_ID]=[forms]![NUEVO SERVICIO]![CEDULA_ID]") >= 1 Then
DoCmd. Close
DoCmd. OpenForm "TOMAS DE SERVICIOS"
Por esto otro:
If DCount("CEDULA_ID", "CLIENTES", "[CEDULA_ID]=[forms]![NUEVO SERVICIO]![CEDULA_ID]") >= 1 Then
DoCmd.OpenForm "TOMAS DE SERVICIOS"
[forms]![tomas de servicios]![cedula_id] = [forms]![nuevo servicio]![cedula_id]
DoCmd. Close acForm, "nuevo servicio", acSaveYes
Hola, buenas noches, exactamente es lo que yo quería, lo probé y efectivamente me funciona, que pasara el valor al segundo formulario. Lo único que me esta haciendo ahora es que me habré el formulario TOMAS DE SERVICIOS, detrás del panel control principal, tengo que clikclear la pestaña para que venga al frete y llenar los campos restantes de ese formulario. Si me puedes ayudar por que sucede eso, antes no lo hacia.
Muchas gracias por tu paciencia y ayuda, eres lo máximo.
En las propiedades del formulario TOMAS DE SERVICIOS, ponle
emergente = si,
Supongo que eso solucionara tu problema.
Buen dato ese, ya me trae al frente el formulario. Gracias por tu gran ayuda. Ahora te pregunto: En Access se puede abrir el mismo formulario varias veces, o hay un truco para hacer eso, por que ese formulario me va permitir tomar un servicio, pero si necesito tomar otro al mismo tiempo no podre hacerlo hasta que cierre el anterior. Eso me puede pasar ya que para cerrar el otro cuando lo este usando debo esperar unos 15 a 20 minutos para la confirmación de el servicio en cuestión para cerrarlo.Si puedes ayudarme te lo agradezco, si no avisame para puntual y cerrar la pregunta. Gracias una vez más por tu tiempo.
Pues si, se puede hacer. Pero entiendo que lo mejor es que cierres este hilo y vuelvas a abrir otro. Las respuestas siempre le pueden servir a alguien más y lo que planteas es totalmente diferente al inicio de la pregunta. Por eso digo que mejor es que cierres este, el que busque por algo de tu pregunta ya tendrá una respuesta, y luego planteas la nueva inquietud, que si es bien contestada por mi parte, también le puede servir a otro. (De paso al volver a hacerme una pregunta distinta, me ayudas a centrarme, entiéndeme intento contestar a varias preguntas a la vez, y al final tengo que leerme todo el "hilo" para saber que es lo que me estaban preguntando. Un saludo. (Y estoy atento a cuando lo preguntes para intentar responderte, no es "sencillo")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas