function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion

ActivityHistory does not support query

Hi all, apex n00b here...


I am trying to modify this lovely VF example from Jeff Doyglas ( to enable Activity History searching for my users. Everything goes great until actually attempting to search, where I receive this error:


System.QueryException: entity type ActivityHistory does not support query line 39, column 1


Can anyone offer a suggestion for modifying the class below to make this work? I know that ActivityHistory querying requires a relationship query, but I am not sure how to achieve this in the following scenario:


public class ActivitySearchController {
    //added an instance varaible for the standard controller
    private ApexPages.StandardController controller {get; set;}
    // the actual account
    private Account a;
    // the results from the search. do not init the results or a blank rows show up initially on page load
    public List<ActivityHistory> searchResults {get;set;}
    // the text in the search box
    public string searchText {
        get {
            if (searchText == null) searchText = 'Enter keywords'; // prefill the search box for ease of use
            return searchText;
    public ActivitySearchController(ApexPages.StandardController controller) {
        //initialize the stanrdard controller
        this.controller = controller;
        this.a = (Account)controller.getRecord();
    // fired when the search button is clicked
    public PageReference search() {
        if (searchResults == null) {
            searchResults = new List<ActivityHistory>(); // init the list if it is null
        } else {
            searchResults.clear(); // clear out the current results if they exist
        // Note: you could have achieved the same results as above by just using:
        // searchResults = new List<categoryWrapper>();
        // use some dynamic soql to find the related activities by subject
        String qry = 'Select ah.Id, ah.subject, ah.whoid, ah.whatid, ah.accountid, ah.ownerid, ah.activitydate, ah.description from ActivityHistory ah Where AccountId = \''+a.Id+'\' And ah.Subject LIKE \'%'+searchText+'%\' Order By ah.Subject';
        searchResults = Database.query(qry);
        return null;



Use this query: 


String qry = 'Select(Select Id, subject, whoid, whatid, accountid, ownerid, activitydate, description from ActivityHistories where Subject LIKE \'%'+searchText+'%\' Order By Subject') FROM Account  where Id = \''+ a.Id+'\'';


Thanks, Rajiv. I gave that a shot, but now receive the following error:


Error: Compile Error: line 38:217 no viable alternative at character '\' at line 38 column 217


Any idea why that is happening?


 use this query


String qry = 'Select Id,(Select Id, subject, whoid, whatid, accountid, ownerid, activitydate, description from ActivityHistories where Subject LIKE \'%'+searchText+'%\' Order By Subject) FROM Account  where Id = a.Id';