Funcion ReferenciaDuplicada
Publicado por kurkix (1 intervención) el 08/07/2009 09:28:05
Hola,
- Tengo cuatro tablas tablas:
Productos: Referencia, Descripcion, Precio, Descuento, Proveedor…
DetalleSubordenCons: Orden, SubOrden, Referencia, Cantidad.
SubordenCons: Orden, SubOrden, Trabajo.
OrdenCons: Orden, Cliente
Entre ellos tienen relacion de integridad referencial.
- Hago una consulta SALIDA SUBORDEN con (Productos y DetalleSubordenCons):
Orden, SubOrden, Referencia, Descripcion, Cantidad, Precio, Descuento, Precio Total, Proveedor.
Tengo Un Formulario con un subformulario y dentro de este otro subformulario.
El funcionamiento es simple. Primero meto un Orden y un Cliente. Despues meto un subOrden y trabajo (cada orden puede tener varios subordenes) y despues en cada suborden y trabajo, la referencia y cantidad que empleo en ella.
Quiero que cuando un producto este duplicado en un suborden me de un error. Creo que el camino que estoy utilizando es bueno ya que anteriormente lo tengo empleado pero no con tres formularios a la vez.
Este es el codigo que tengo escrito.
Private Function ReferenciaDuplicada(intOrden As Integer, intSuborden As Integer, strProducto As String) As Boolean
Dim sSQL As String
Dim r As DAO.Recordset
sSQL = "SELECT * FROM DetalleSubordenCons WHERE Orden LIKE '" & intOrden & "*' AND Suborden LIKE '" & intSuborden & "*' AND Referencia LIKE '" & strProducto & "*'"
Set r = CurrentDb.OpenRecordset(sSQL)
If r.RecordCount = 0 Then
ReferenciaDuplicada = False
Else
ReferenciaDuplicada = True
End If
Set r = Nothing
End Function
--------------------------------------------------------------------------------------
Private Sub Referencia_BeforeUpdate(Cancel As Integer)
If ReferenciaDuplicada(Me!SubOrden, Me!Referencia) = True Then
MsgBox "Referencia insertada anteriormente", vbInformation, "Interrumpiendo su Sesión"
Me.Referencia.Undo
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Cancel = True
End If
End Sub
Alguien me puede ayudar?
- Tengo cuatro tablas tablas:
Productos: Referencia, Descripcion, Precio, Descuento, Proveedor…
DetalleSubordenCons: Orden, SubOrden, Referencia, Cantidad.
SubordenCons: Orden, SubOrden, Trabajo.
OrdenCons: Orden, Cliente
Entre ellos tienen relacion de integridad referencial.
- Hago una consulta SALIDA SUBORDEN con (Productos y DetalleSubordenCons):
Orden, SubOrden, Referencia, Descripcion, Cantidad, Precio, Descuento, Precio Total, Proveedor.
Tengo Un Formulario con un subformulario y dentro de este otro subformulario.
El funcionamiento es simple. Primero meto un Orden y un Cliente. Despues meto un subOrden y trabajo (cada orden puede tener varios subordenes) y despues en cada suborden y trabajo, la referencia y cantidad que empleo en ella.
Quiero que cuando un producto este duplicado en un suborden me de un error. Creo que el camino que estoy utilizando es bueno ya que anteriormente lo tengo empleado pero no con tres formularios a la vez.
Este es el codigo que tengo escrito.
Private Function ReferenciaDuplicada(intOrden As Integer, intSuborden As Integer, strProducto As String) As Boolean
Dim sSQL As String
Dim r As DAO.Recordset
sSQL = "SELECT * FROM DetalleSubordenCons WHERE Orden LIKE '" & intOrden & "*' AND Suborden LIKE '" & intSuborden & "*' AND Referencia LIKE '" & strProducto & "*'"
Set r = CurrentDb.OpenRecordset(sSQL)
If r.RecordCount = 0 Then
ReferenciaDuplicada = False
Else
ReferenciaDuplicada = True
End If
Set r = Nothing
End Function
--------------------------------------------------------------------------------------
Private Sub Referencia_BeforeUpdate(Cancel As Integer)
If ReferenciaDuplicada(Me!SubOrden, Me!Referencia) = True Then
MsgBox "Referencia insertada anteriormente", vbInformation, "Interrumpiendo su Sesión"
Me.Referencia.Undo
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Cancel = True
End If
End Sub
Alguien me puede ayudar?
Valora esta pregunta


0