Números de facturas iguales

¿Cómo hago para evitar cargar una factura nuevamente?
Tengo un formulario para cargar facturas
En la tabla hay campos como: proveedor, fecha, empresa, numero de factura.
¿Cómo puedo hacer para que cuando termine de introducir el numero de factura mire en la tabla y me diga que esa factura ya esta cargada?

2 Respuestas

Respuesta
1
Si lo que no se puede repetir es el nº de factura, ponla como indice sin duplicados (en diseño de tabla).
Saludos:si eso lo probé pero lo que pasa es que al tener muchos proveedores hay facturas con igual numero.
Mi idea fue crear un campo alfanumérico, en un campo "codigo" con: la empresa, fecha, numero y total o sea "ANDAR15/08/20070001000056877548"
Pero me gustaría que me avisara que la factura esta cargada en la base o sea algo como dlookup o dcount, que ya probé pero no me sale.
¿Alguna idea?
Me parece que no has entendido la respuesta. Tú lo que tendrás es una clave de la tabla, la clave no se puede repetir, por ejemplo si tu clave es id1 e id2, puedes tener dos registros:
id1=1, id2=1
id1=1, id2=2
Lo que te propongo es :
1) Mira si tienes nums repetidos y los corriges.
2) Entra en diseño de Tabla
3) Posiciónate en el campo numero de factura
4) Abajo del todo veras un campo que se llama 'indexado', marca la opción 'Sí (sin duplicados) y ya está.
¿Te queda claro ahora?
Hola: si eso ya lo probé, pero te lo vuelvo a explicar.
Con los números de factura se daba que se podían repetir, al crearle ese código que te decía arroja un valor ahora si único para cada factura.
Indexando el campo, funciona bien dado que no me permite reingresarla, dado que ya esta.
Mi pregunta ES: necesito que me avise antes de aguardar o querer guardar, me diga después de actualizar el
Numero de factura (habiendo calculado en una variable el código)que esa factura ya esta cargada en un mensaje.
Como te dije probé con dlookup y dcount pero me da error, me gustaría saber si hay otra función o alguna otra forma de hacerlo.
Lo de indexado ya estaba incluido pero necesito que me avise aun antes de continuar con la carga de la factura porque tengo muchos datos no solamente los importes, hay que hacerle retenciones, cta cte, pagos, ¿créditos y si me avisa al final me pierdo media hora recargando una factura que ya estaba cargada?
Perdón por no explicarme mejor antes.
Entonces lo tienes que hacer con código, por ejemplo, en el campo nº factura, utilizas el evento 'al salir' (también puedes poner un botón de validar factura), en ese evento puedes poner el código siguiente
Dim n as integer
n=0
if isnumeric(numfactura)=true then
n=dcount("[numfactura]","Facturas","[numfactura]=" & str(numfactura)
endif
if n>0 then msgbox "Ya hay " & str(n) & " con el mismo numero"
Salvo nombres de campos y tablas te servirá.
Respuesta
1

Yo tengo el mismo problema y e intentado adaptar lo que aquí explicas pero algo debo hacer mal por que no me deja.

Tengo un formulario que se llama:

F-Albaranes de proveedor reducido

Ella contiene una serie de campos pero el que realmente me interesa comprobar su duplicado se llama:

NºFactura

He puesto en un evento de ese campo ANTES DE ACTUALIZAR el código que indicas.

Quedando de la siguiente forma:

Private Sub NºFactura_BeforeUpdate(Cancel As Integer)
Dim n As Integer
n = 0
If IsNumeric(Nºfactura) = True Then
n=dcount("[NºFactura]","F-Albaranes de Proveedor reducido","[NºFactura]=" & str(NºFactura)
End If
If n > 0 Then MsgBox "Ya hay " & Str(n) & " con el mismo numero"
End Sub

Pero en la línea del If isNumeric se me queda en rojo y no me acepta el código.

Que estoy poniendo mal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas