View Single Post
  #3  
Old May 14th, 2010, 03:11 PM posted to microsoft.public.access.queries
Tom van Stiphout[_2_]
external usenet poster
 
Posts: 1,653
Default Query using multiple values from one text box

On Fri, 14 May 2010 06:14:37 -0700 (PDT), shm135
wrote:

I'm guessing you have a query:
select * from myTable where StateName = Forms!myForm!myTextbox
You later use this query as the recordsource for some form or report.

The reason your current solution does not work is because there is no
StateName with a value of Alaska OR Alabama, regardless of how you put
the doublequotes.
The solution is to use an IN clause:
select * from myTable where StateName in ('Alaska', 'Alabama')
(note that I use single-quotes; will come in handy below)
I have noticed in the past that this does not work in a query:
select * from myTable where StateName in (Forms!myForm!myTextbox)

The workaround is to forget about the query and assign the
concatenated string to the recordsource property directly:
private sub form_open
if isnull(Forms!myForm!myTextbox) then
msgbox "Yo! Gimme some state(s)"
else
me.recordsource = "select * from myTable where StateName in (" &
Forms!myForm!myTextbox & ")"
end sub
Now if you put 'Alaska', 'Alabama' in the textbox it should work.

-Tom.
Microsoft Access MVP



Hi,

I have a form called Test. On this form, I have a textbox where I can
type query criteria. I would like to be able to type multiple criteria
into this textbox and use this textbox to filter my query results.

For example, on my Test form textbox, I'd like to be able to type
("Alaska" OR "Alabama") and would like to then filter my query based
on what I type into this textbox.

Currently, when I type one thing into the textbox "Alaska," the query
properly filters to all results that equal "Alaska." However, when I
type another piece of critiera "AND Alabama" or "OR Alabama", the
query returns no results.

How can I accomplish this?

Thanks