Sure you do. Don't make it harder than it is...
strProductId = lstProductId.List(lstProductId.ListIndex)
strProductName = lstProductName.List(lstProductId.ListIndex)
curUnitPrice = CCur(lstPrice.List(lstProductId.ListIndex))
intQuantity = vscQuantity.Value
Looking over the code in the Save_Click, you have the above. Where you grab the ID, ProductName, UnitPrice, and Quantity. Well totals are Quantity * UnitPrice. Are they not? So just create a new variable and store an accumulating total to be written when Save is clicked.
i.e.
intTotal = CInt(curUnitPrice) * intQuantity
But here is a couple of things to consider. From the code (although I ran through it rather quickly) you have provided you seem to allow only one item selection. What if the customer wants to select more than one item. And then for doing that total, just use the For Loop like I suggested to move through the listbox accumulating totals.
i.e. For ......
intTotal = inTotal + ((lstPrice.List(lstProductId.ListIndex) * vscQuantity.Value
Next intIndex
Or something to that effect.
Other piece of advice, take it for what it is worth, it is allways simplier to store values as the same data type. i.e. Integers, rather than currency and integer and double data types. You can easily convert them in code. Just my practice....
Hope this helps you in the right direction.!
p.s. I know the problem you are working on, as I have had to do it in C++ (command line program even) but we had to also validate the products (which were books) by their ISBN numbers!