What you need to be doing is using collections.
I don't know all the details of what you are doing so I'm winging it but...
You should have a Pharmacy Class and inside that class should have a collection class called Medicines.
The medicines could have a type (usually a byte) that helps identify it.
What you want to do is not overwrite your exisiting stock but add another Medicine to your collection, sort of like an arraylist
Dim myPharamacy as Pharmacy
myPharamacy=new Pharmacy
myPharmacy.Load(pPharmacyID)
myPharamcy.getMedicines(MedicineTypes.SleepingAids)
dim myMedicines as Medicines
myMedicines=myPharmacy.Medicines
dim myMedicine as Medicine=nothing
myMedicine=myMedicines.GetByExpirationDate(10/10/2010)
if not myMedicine is nothing then
console.out.writeline(myMedine.Name)
end if
So you want to add another medicine to a collection of medicines, this way they keep their own unique expiration, you also know how many unique quantites you have altogether as orders or all counts.
Don't let anyone tell you VB is not a good language, I develop in VB.net for a College.
It kicks butt!
So yes use another table and use collections!