Yeah, not enough sleep...
If you just want to block the execution of your app and wait for the result, you have to do nothing. ExecQuerySingleResult is a synchronous function and therefore will not return until it has finished executing your query. Since you mentioned wait for, my mind read your question as wanting to not block. Instead of deleting my answer and just posting the correction, I left my original incorrect answer and then added the, hopefully, correct answer.
Edit (again):
All you need is
Sub getLocation(rec as int)asstring
DimlatlngAsString = sql.ExecQuerySingleResult("SELECT location FROM address WHERE addrID = "&rec&"")
Return latlngEnd
End Sub