The setting for this property is too long (frm.Filter = varWhere) (1 Viewer)

masoud_sedighy

Registered User.
Local time
Yesterday, 17:19
Joined
Dec 10, 2011
Messages
132
I have used below code for search button of my form. I have a text box with the name (txtsearch), when user type in the text box and press search button it searches every field in the table for finding contained word, now for example when I want to find (mobile no) and type in the txtsearch "09133933456" it gives error (The setting for this property is too long for frm.Filter = varWhere).
But when I type just 3 or 4 character (9133), I have no problem; please help what is the problem and how I can solve.

Code:
varWhere = "[First Name] LIKE '" & strWild & Me.txtsearch & strWild & "'"
         varWhere = (varWhere + " or ") & "[Last Name] LIKE '" & strWild & Me.txtsearch & strWild & "'"
         
         varWhere = (varWhere + " or ") & "[ID Number] = '" & Me.txtsearch & "'"
             varWhere = (varWhere + " or ") & "[MobileNo] LIKE '" & Me.txtsearch & "'"
       varWhere = (varWhere + " or ") & "[MeliCode] LIKE '" & Me.txtsearch & "'"
         
          varWhere = (varWhere + " or ") & "[Mahale_Tavalod] LIKE '" & strWild & Me.txtsearch & strWild & "'"
          
           varWhere = (varWhere + " or ") & "[Tarikh_Tavalod] LIKE '" & Me.txtsearch & "'"
           
           varWhere = (varWhere + " or ") & "[Mahale_Sodor] LIKE '" & strWild & Me.txtsearch & strWild & "'"
           
     
            varWhere = (varWhere + " or ") & "[Tahsilat] LIKE '" & strWild & Me.txtsearch & strWild & "'"
            
            varWhere = (varWhere + " or ") & "[Reshteh_Tahsili] LIKE '" & strWild & Me.txtsearch & strWild & "'"
            
            varWhere = (varWhere + " or ") & "[Mahale_Tahsil] LIKE '" & strWild & Me.txtsearch & strWild & "'"
            varWhere = (varWhere + " or ") & "[Sale_Akhze_Madrak] LIKE '" & strWild & Me.txtsearch & strWild & "'"
            varWhere = (varWhere + " or ") & "[Mazhab] LIKE '" & Me.txtsearch & "'"
            
             varWhere = (varWhere + " or ") & "[Shenase_KarGozini] LIKE '" & Me.txtsearch & "'"
             varWhere = (varWhere + " or ") & "[Vazeiat_Maskan] LIKE '" & strWild & Me.txtsearch & strWild & "'"
             varWhere = (varWhere + " or ") & "[Vazeiat_Tahol] LIKE '" & strWild & Me.txtsearch & strWild & "'"
             varWhere = (varWhere + " or ") & "[Tarikhe_Vorod_BeSherkat] LIKE '" & Me.txtsearch & "'"
             varWhere = (varWhere + " or ") & "[Noe_Ozviat] LIKE '" & Me.txtsearch & "'"
              varWhere = (varWhere + " or ") & "[Address] LIKE '" & strWild & Me.txtsearch & strWild & "'"
              varWhere = (varWhere + " or ") & "[Kode_Posty] LIKE '" & Me.txtsearch & "'"
               varWhere = (varWhere + " or ") & "[Tele_Sabet] LIKE '" & Me.txtsearch & "'"
               varWhere = (varWhere + " or ") & "[City] LIKE '" & strWild & Me.txtsearch & strWild & "'"
               varWhere = (varWhere + " or ") & "[Ostan] LIKE '" & strWild & Me.txtsearch & strWild & "'"
               varWhere = (varWhere + " or ") & "[Stelam_Herasat_IssueNo] LIKE '" & Me.txtsearch & "'"
               varWhere = (varWhere + " or ") & "[Stelam_Herasat_IssueDate] LIKE '" & Me.txtsearch & "'"
               varWhere = (varWhere + " or ") & "[Stelam_Herasat_RecieveNo] LIKE '" & Me.txtsearch & "'"
               varWhere = (varWhere + " or ") & "[Stelam_Herasat_RecieveDate] LIKE '" & Me.txtsearch & "'"
                varWhere = (varWhere + " or ") & "[Javabieh_Herasat] LIKE '" & strWild & Me.txtsearch & strWild & "'"
                
               varWhere = (varWhere + " or ") & "[Stelam_Namayandegi_IssueNo] LIKE '" & Me.txtsearch & "'"
               
               varWhere = (varWhere + " or ") & "[Stelam_Namayandegi_IssueDate] LIKE '" & Me.txtsearch & "'"
                varWhere = (varWhere + " or ") & "[Stelam_Namayandegi_RecieveNo] LIKE '" & Me.txtsearch & "'"
                 varWhere = (varWhere + " or ") & "[Stelam_Namayandegi_RecieveDate] LIKE '" & Me.txtsearch & "'"
                 
                varWhere = (varWhere + " or ") & "[Javabieh_Namayandegi] LIKE '" & strWild & Me.txtsearch & strWild & "'"
                varWhere = (varWhere + " or ") & "[Stelam_Takhasosi_IssueNo] LIKE '" & Me.txtsearch & "'"
                
                varWhere = (varWhere + " or ") & "[Stelam_Takhasosi_IssueDate] LIKE '" & Me.txtsearch & "'"
                
                 varWhere = (varWhere + " or ") & "[Stelam_Takhasosi_RecieveNo] LIKE '" & Me.txtsearch & "'"
                  varWhere = (varWhere + " or ") & "[Stelam_Takhasosi_RecieveDate] LIKE '" & Me.txtsearch & "'"
                  varWhere = (varWhere + " or ") & "[Javabieh_Stelam_Takhasosi] LIKE '" & strWild & Me.txtsearch & strWild & "'"
                  varWhere = (varWhere + " or ") & "[Pishnahade_EntesabNo] LIKE '" & Me.txtsearch & "'"
                  
                  varWhere = (varWhere + " or ") & "[Pishnahade_EntesabDate] LIKE '" & Me.txtsearch & "'"
                  
                  varWhere = (varWhere + " or ") & "[HokmType] LIKE '" & Me.txtsearch & "'"
                  
                  varWhere = (varWhere + " or ") & "[Hokm_StartDate] LIKE '" & Me.txtsearch & "'"
                  
                  varWhere = (varWhere + " or ") & "[Hokm_FinishDate] LIKE '" & Me.txtsearch & "'"
                  
                 varWhere = (varWhere + " or ") & "[Estenad] LIKE '" & Me.txtsearch & "'"
                
                varWhere = (varWhere + " or ") & "[Ghad] LIKE '" & Me.txtsearch & "'"
                varWhere = (varWhere + " or ") & "[Vazn] LIKE '" & Me.txtsearch & "'"
                varWhere = (varWhere + " or ") & "[Range_Cheshm] LIKE '" & Me.txtsearch & "'"
                
                varWhere = (varWhere + " or ") & "[Range_Mo] LIKE '" & Me.txtsearch & "'"
                
                varWhere = (varWhere + " or ") & "[Bimary_Type] LIKE '" & Me.txtsearch & "'"
                 varWhere = (varWhere + " or ") & "[Naghse_Ozv] LIKE '" & Me.txtsearch & "'"
                  varWhere = (varWhere + " or ") & "[Sabeghe_Jebhe] LIKE '" & Me.txtsearch & "'"
                  
                varWhere = (varWhere + " or ") & "[Sabeghe_Janbazi] LIKE '" & Me.txtsearch & "'"
                varWhere = (varWhere + " or ") & "[Sabeghe_Esarat] LIKE '" & Me.txtsearch & "'"
                
                varWhere = (varWhere + " or ") & "[Sabeghe_Basij] LIKE '" & Me.txtsearch & "'"
                
                varWhere = (varWhere + " or ") & "[Sabeghe_Khanevadeh_Shahid] LIKE '" & Me.txtsearch & "'"
                
         
         MsgBox (varWhere)
   
    
    
    ' Open a recordset to see if any rows returned with this filter
    ' Must always use "%" wildcard in ADO recordset - even in an MDB
    ' See if found none
   
    
        ' Just apply the filter - point to the form
        Set frm = Forms![Fardi List]
        ' In an MDB,
      
            ' Use the Filter property
            frm.Filter = varWhere
            frm.FilterOn = True
        
            ' In and ADP,
            ' Clear the Filter property, if any
          
        Set frm = Nothing
  '  Not open - just open filtered
        ' If 5 or fewer records found,
       
            ' Open Contacts filtered
            DoCmd.OpenForm "Fardi List", WhereCondition:=varWhere
            ' Make sure focus is on contacts
            Forms![Fardi List].SetFocus
       
    ' Clean up recordset
End Sub
 

Galaxiom

Super Moderator
Staff member
Local time
Today, 10:19
Joined
Jan 20, 2009
Messages
12,852
Access has limits. I don't know what it is for a filter string but yours could well be too big when you have more than four characters.

One alternative is to concatenate the fields as a derived field and search in that. The filter string will be shorter.
 

masoud_sedighy

Registered User.
Local time
Yesterday, 17:19
Joined
Dec 10, 2011
Messages
132
[FONT=&quot]You mean i define for example[/FONT]​
[FONT=&quot]
dim x as variant[/FONT]​
[FONT=&quot]
x=[firstname]&[last name]&[mobile no]&......[/FONT]​
[FONT=&quot]varWhere = "x LIKE '" & strWild & Me.txtsearch & strWild & "'"[/FONT]​
 

Galaxiom

Super Moderator
Staff member
Local time
Today, 10:19
Joined
Jan 20, 2009
Messages
12,852
Most users know which fields they are going to search so perhaps you would be better off providing a search function that allowed them to choose the field.

After all they would know a phone number is certainly not going to hold a name and a date will only be found in the date fields.
 

Galaxiom

Super Moderator
Staff member
Local time
Today, 10:19
Joined
Jan 20, 2009
Messages
12,852
The concatentaion I referred to is done in the RecordSource query.

SearchField: LastName & "|" & FirstName & "|" & etc

Then apply the filter to that field.

The field need not be displayed on the form. Just include it in the recordset so the filter can be applied.
 

Users who are viewing this thread

Top Bottom