The simplest way would be to insert rows temporarily into a local Panier table, which could then be referenced in the list box's RowSource property. As your form currently stands, the Panier table would only need a single column, ProduitID referencing
the primary key of a Produits table, so the list box's RowSource would be along these lines:
SELECT Panier.ProduitID, Produits.Produit
FROM Panier INNER JOIN Produits
ON Panier.ProduitID = Produits.ProduitID;
So, the code to add the selected product to the list box would be like this:
Dim strSQL AS String
strSQL = INSERT INTO Panier(ProduitID) VALUES(" & Me.cboProduit & ")"
CurrentDb.Execute strSQL, dbFailOnError
Me.lstPanier.Requery
Once the list was confirmed as complete for the current order, it could then be inserted into an OrderDetails table with code along these lines:
Dim strSQL AS String
strSQL = INSERT INTO OrderDetails(OrderID, ProduitID) " & _
"SELECT " & Me.OrderID & ", ProduitID FROM Panier"
CurrentDb.Execute strSQL, dbFailOnError
' empty Panier table
strSQL = DELETE * FROM Panier"
CurrentDb.Execute strSQL, dbFailOnError
Me.lstPanier.Requery
One thing your form does not seem to include is any provision for specifying a quantity of the selected product. If a control for this were to be included in the form, then this would be referenced in the first SQL statement and inserted into a Quantité column
in the Panier table, and similarly in the second SQL statement when inserting a row into OrderDetails.