I am trying to create a dynamic sql query. I have created a search form with many different text boxes that a user can choose to search by, and when they click search a subform comes up with the results. However when I try to set the record source of the subform I get an error 438, Object doesn't support this property or method. Any help would be appreciated. I have created the subform frame, Named SearchQuerySubform1, and my subform is SearchQuerySubform, I have tried a few different methods to set the subform, but they all error out.
Code:
Sub newsqlsearch()
Dim sqlSelect As String
Dim sqlFrom As String
Dim sqlWhere As String
Dim sqlSort As String
Dim sqlSearch As String
Dim sqllength As Integer
sqlSelect = "SELECT Requests.[CGERTicket], Items.Status, Items.Description, Items.[BudgetType], Items.[BudgetYear], Items.[UnitPrice], Items.Quantity, " & _
" Items.Manufacturer, Items.[Model], Items.RequisitionNumber, Items.ReqDate, Items.DeliveryDate, Items.Vendor, Items.Notes, Items.PONumber, " & _
" Items.PODate, Items.Buyer, Items.[CPRNum], Items.ReceiptedAmount, Items.ReceiptedDate, Items.ItemType, Items.SpecialProject, Items.Comments, Requests.Organization, " & _
" Requests.Department, CheckTagged.[CountOfCPR], Requests.[RequesterName], Requests.[EndUserName], Requests.[RequestDate], Requests.[Section], Requests.Attention, " & _
" Requests.[BudgetCoordinator], Requests.Location, Requests.[MDSCode], Requests.RequestLink, Items.ID, Left(Items.[CPRNum],7) AS ShortCPR, " & _
" Left(Items.[Description],200) AS ShortDesc "
sqlFrom = "FROM (Requests INNER JOIN Items ON Requests.[CGER Ticket] = Items.[CGER Ticket]) INNER JOIN CheckTagged ON Items.ID = CheckTagged.ID "
sqlSort = "ORDER BY Requests.[CGERTicket] DESC"
sqlWhere = ""
If IsNull(Me.BudgetYear) = False Then sqlWhere = sqlWhere & " and ((Items.[BudgetYear]) Like [Forms]![SearchForm]![BudgetYear])"
If IsNull(Me.BudgetType) = False Then sqlWhere = sqlWhere & " and ((Items.[BudgetType]) Like [Forms]![SearchForm]![BudgetType])"
If IsNull(Me.RequestID) = False Then sqlWhere = sqlWhere & " and ((Requests.[CGERTicket]) Like [Forms]![SearchForm]![RequestID])"
If IsNull(Me.ReqNum) = False Then sqlWhere = sqlWhere & " and ((Items.[RequisitionNumber]) Like [Forms]![SearchForm]![ReqNum])"
If IsNull(Me.PoNum) = False Then sqlWhere = sqlWhere & " and ((Items.PONumber) Like [Forms]![SearchForm]![PoNum])"
If IsNull(Me.Desc) = False Then sqlWhere = sqlWhere & " and ((Items.Description) Like ""*"" & [Forms]![SearchForm]![Desc] & ""*"") "
If IsNull(Me.Model) = False Then sqlWhere = sqlWhere & " and ((Items.[Model]) Like ""*"" & [Forms]![SearchForm]![Model] & ""*"") "
If IsNull(Me.Manuf) = False Then sqlWhere = sqlWhere & " and ((Items.Manufacturer) Like ""*"" & [Forms]![SearchForm]![Manuf] & ""*"") "
If IsNull(Me.Vendor) = False Then sqlWhere = sqlWhere & " and ((Items.Vendor) Like ""*"" & [Forms]![SearchForm]![Vendor] & ""*"") "
If IsNull(Me.ItemType) = False Then sqlWhere = sqlWhere & " and ((Items.ItemType) Like [Forms]![SearchForm]![ItemType])"
If IsNull(Me.SpecProj) = False Then sqlWhere = sqlWhere & " and ((Items.SpecialProject) Like [Forms]![SearchForm]![SpecProj])"
If IsNull(Me.Org) = False Then sqlWhere = sqlWhere & " and ((Requests.Organization) Like [Forms]![SearchForm]![Org])"
If IsNull(Me.Dep) = False Then sqlWhere = sqlWhere & " and ((Requests.Department) Like [Forms]![SearchForm]![Dep])"
sqllength = Len(sqlWhere)
sqlWhere = "WHERE (" & Right(sqlWhere, (sqllength - 5)) & ")"
sqlSearch = sqlSelect & sqlFrom & sqlWhere & sqlSort & ";"
Forms![searchform]![SearchQuerySubform1].SourceObject = "SearchQuerySubform"
Forms![searchform]![SearchQuerySubform1].SearchQuerySubform.RecordSource = sqlSearch
'Forms![searchform]![SearchQuerySubform1].RecordSource = sqlSearch
'Me.SearchQuerySubform.Form.RecordSource = sqlSearch