Well firstly you appear to be just concatenating the same field?
I expect your subform is 1 to many, as most subforms are?
In which case, it will only pick up the first record in the subform and you have just concatenated it twice.?
You would need a function to read all the LOC_ID in the related subform and concatenate each to a build a string. It is that string that you would use in your control.
Off the top of my head, I think you could do it with a function in the form (just for ease of use with recordsource).
Set a recordset object to the subform recordset (so you have exactly the same data)
Perform until EOF of recordset
strString = strString & rs!LOC_ID
Set recordset object to Nothing
then return the string as the function name
Concat_LOC_ID = strString
if you called the function Concat_LOC_ID
Also if all you wanted the ';' for was as a delimiter, you could do that in the function and not create extra data in the query.?
You would use
strString = strString & rs!Location_ID & ";"
and then remove the last ';' with
strString = LEFT(strString,LEN(strString -1))