Abrir formulario desde Otro formulario ACCESS

¿Cómo están? Les consulto lo siguiente...

Tengo dos tablas sencillas. Una de comprobantes de facturas y otra de proveedores. La relación entre ambas es por medio del CUIT del proveedor. Entonces yo lo que hago es cargar los datos de la factura donde aparece el cuit demi proveedor. Obvio que si dicho cuit no existe, no me deja cargarlo.

Me gustaría que al cargar el CUIT me tire un msgbox avisando que dicho cuit no se encuentra en la tabla proveedores. Pero no se como mandarle la instrucción al evento.

Por otro lado, puse un botón en el formulario de carga de comprobantes, el cual me lleva a un formulario para dar de alta a proveedores. Pero me da error por todos lados si le pongo el comando para que el formulario abra en blanco, como así también me da el siguiente error "No se puede ir al registro específico"...

Yo creo que es porque el formulario de comprobantes esta abierto... Pero no se ja ja

1 Respuesta

Respuesta
2

Puedes hacerlo de muchas formas. Por ejemplo, supongamos que tengo la tabla Proveedores, donde tu CUIT es mi CIF

Y tengo un formulario Compras donde cambio el cuadro de texto CIFProveedor por un combinado, en cuyo origen de la fila he puesto

SELECT Proveedores.CIF, Proveedores.NombreProveedor FROM Proveedores;

En sus propiedades-Datos- Limitar a la lista le digo que sí. Y en sus propiedades-Formato-Número de columnas le pongo 2 y en Ancho de columnas le pongo 0;6, para que me oculte la columna dependiente. Hago esto porque pienso que es más fácil acordarse de un nombre que de un frío número.

Vamos a suponer que escribo el nombre de un proveedor nuevo que no está en la tabla Proveedores( y por tanto su CIF)

Escribo Pepe Lopez SA y cuando pulso Enter para irme a otro control me aparece el mensaje. Si le digo No, el cursor se vuelve al combinado para que cambies el nombre. Si le digo Sí, se abre el formulario Proveedores en vista diálogo y en un registro nuevo.

Anoto los datos de ese nuevo proveedor y cuando cierro el formulario, el de Compras ya me queda con su nombre( en realidad su CIF, aunque no se vea) en el combinado, porque ya "existe", y matas dos pájaros de un tiro, en el formulario Compras ya tienes el nuevo Proveedor y en la tabla Proveedores igual.

El código del evento Al no estar en lista del combinado es

Private Sub CifProveedor_NotInList(NewData As String, Response As Integer)
Dim Proveedornuevo As Integer, título As String, mensaje As Integer
título = "El Proveedor que ha escrito no está en la lista"
mensaje = vbYesNo + vbDefaultButton1
Proveedornuevo = MsgBox("¿Desea agregar este Proveedor a la lista ?", mensaje, título)
If Proveedornuevo = vbYes Then
DoCmd.RunCommand acCmdUndo
DoCmd.OpenForm "Proveedores", acNormal, "", "", acAdd, acDialog
Response = acDataErrAdded
End If
End Sub

Julián, muchísimas gracias por el código, ya lo acople a mi access pero tengo otro problema ahora.
Cuando le doy que si, para que me abra el formulario de proveedores, el mismo sale en blanco. Lo borre y lo volví a crear desde el asistente incluso, sin modificar nada y sigue abriéndose en blanco. ¿Tienes idea que podrá ser?

De nuevo, muchísimas gracias y muy buena la solución que me diste !

¿Sale en blanco ó los cuadros de texto salen en blanco?. Si es ésto último, es lógico, porque ese proveedor todavía no existe. Por eso se abre en un registro nuevo, en blanco para que anotes sus datos y se guarden en la tabla Proveedores. Un ejemplo, supongo que en Argentina será igual que en España. Los vehículos tienen que pasar obligatoriamente, cada cierto tiempo una revisión oficial. La llamamos, pasar la ITV. Cuando me llega la fecha, no me voy directamente al hangar donde te pasan la revisión porque para los mecánicos mi coche, de momento, no "existe". Tengo que pasar antes por la oficina(formulario Proveedores) para dar mis datos personales y los datos del vehículo, y ya quedan guardados( tabla Proveedores). Ahora si puedo ir al hangar( formulario Compras) porque los mecánicos ya tienen los datos.

Otro. Tu no te plantas directamente en el despacho del médico. Pasas antes por el despacho de su ayudante para que te tome los datos, te fije un día de consulta, y sobre todo como vas a pagarle.

De todas formas, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo.

Si lo haces, en el asunto del mensaje pon tu alias Juan Chini, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas