Por si te sirve de algo, aunque es en Access. Tendría una tabla Clientes, con los datos personales que nunca o caso nunca cambian de un cliente, como puede ser, Nombre, Telefono, Dirección, email, etc. Una tabla, por ejemplo, Categorías, si los componentes los tienes distribuidos por las mismas, una tabla Productos( para tí Componentes), con la categoría a la que pertenecen, nombre, precio,...
Otra tabla Ventas( o Factura, o como quiera llamarla) con FechaVenta, Cliente, NumFactura, Subtotal, TipoIVA, ImporteIVA y TotalFactura
Y por último, como un cliente puede comprar uno o varios componentes, otra tabla llamada DetalleVenta, con Categoria, Producto, Precio, Cantidad, Subtotal... y te quedaría algo parecido a
No le hagas caso a los controles Antes y Después que son para mantener al día las existencias. Puedes ver que el cursor está en el control Cantidad, en el momento que pulso Enter
En el formulario me va poniendo la suma acumulada de los diferentes producto(componentes) que vaya comprando
Al pulsar Enter
El código del evento Después de actualizar del cuadro de texto Cantidad es
Subtotal = Precio * Cantidad
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Importe = DSum("subtotal", "detalleventa", "idventa=" & Me.IdVenta & "")
Me.Parent!ImporteIVA = Me.Parent!Importe * Me.Parent!IVA / 100
Me.Parent!TotalFactura = Me.Parent!Importe + Me.Parent!ImporteIVA
Por si te da una idea