In your code, the call to
Text(ControlName.Barcodes.Value)
is invalid. The Text function can be used to convert scalar values (such as numbers / dates / times) to text/string. But ControlName.Barcodes.Value is not a scalar, it is a table with the values of all barcodes that were scanned by the control - and the Text function does not work with tables, only with scalar values.
By taking the first element of the ControlName.Barcodes table, we have a single record, and when we use .Value we are extracting the text/string from that record. That value can be used in the Find function to search for ';'.