SELECT cat_Tbl.catDesc,FM_Tbl.FMitemNo,FM_Tbl.Pindex,FM_Tbl.FMqty,prod_Tbl.Ptext,prod_Tbl.Pum,prod_Tbl.Ppri ce FROM cat_Tbl,FM_Tbl,prod_Tbl WHERE (FM_Tbl.OSno = " & lngNum & ") AND FM_Tbl.Pindex=prod_Tbl.Pindex AND cat_Tbl.catNo=prod_Tbl.Pcat ORDER BY FM_Tbl.FMitemNo

try using this code in an ms access query and see if it works. if yes then check the codes for showing the data in the grid. If it does not produce the records then check the records. They ma have been duplicated during the adding process.

Or another reason for the dublication is the relation ships. The data is being fetched from different tables but you have not specified any join or anything to indicate to vb6 whether there is any relationship among the records from the tables.