То-что ругается уже хорошо, значит работает, хотя и неправильно.
Вы посмотрели в отладке, что у вас получается в DataModule1.ADOQuery2.SQL.Text ?
Как поставить точку останова в курсе? Если нет, то установите курсор на строку:
Код:
DataModule1.ADOQuery2.SQL.Text:= 'SELECT * FROM Работники WHERE Подразделение = "' + string(TreeView1.Selected.Data) + '"';
и нажмите Ctrl+F8
Затем запустите программу и после остановки программы на этой строчке нажмите F7 и посмотрите что получилось в DataModule1.ADOQuery2.SQL.Text