Can you upload a screen shot of Manage Database Relationships showing these relationships?
Relationship diagram (Pricelist Used="Prices" and Products Stock="Product" from my first comment)
PricelistTagActive is global field
Cascading deletes can be very useful, but they are also tricky at times. The devil is always in the details. Let me sum up what you just posted...
Products Stock-------Pricelist Used-------PriceList
Products Stock::ID = Pricelist Used::ID Product AND
Products Stock::gPricelistTagActive = Pricelist Used::PricelistTag
Pricelist Used::ID Pricelist = Pricelist::ID AND
Pricelist Used::Pricelist Tag = Pricelist::Tag
Your original posts says to reproduce this, you need to delete a record in Product Table. I must assume that is deleting a record in Products Stock.
That should delete all matching records in Pricelist used--any record with matching values in ID Product and Pricelist tag. This then trips a cascading delete, deleting any record in Pricelist with a matching ID and Tag.
First question: Do either Pricelist::Tag or Pricelist Used::PricelistTag have global storage specified?
Are there any other occurrences with the same data source table as Pricelist Used in your relationships graph? I'd check relationships for any such to see if another delete option is specified there that is responsible for the delete that you are seeing.
I agree that cascading deletes might be tricky and I am sorry, that i have posted wrong table names.
Pricelist::Tag and Pricelist Used::PricelistTag are standard indexed fields. There aren' t any other occurences with delete option.
If I uncheck second delete option in relationship Pricelist Used = Pricelist (on the Pricelist side), the delete in products stock is ok. It isn't necessary to have both options checked in our solution.