PC Review


Reply
Thread Tools Rating: Thread Rating: 3 votes, 2.33 average.

Query using multiple values from one text box

 
 
shm135
Guest
Posts: n/a
 
      14th May 2010
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
 
Reply With Quote
 
 
 
 
ghetto_banjo
Guest
Posts: n/a
 
      14th May 2010

Well, I don't think it will work by directly passing that textbox
value to the query. The query ends up searching for the actual string
of "Alaska OR Alabama", which of course returns no results..


You could use some VB code to parse the string and manually generate
your WHERE clause of the SQL statement. Using the InStr() funciton,
you could search for strings such as " OR " and " AND ", and determine
from there how to build out the WHERE clause of the SQL. It's not the
simplest thing to code, but it's certainly possible. If you want to
try this route, we can assist with how the code will look.


Or you might be able to just use multiple text boxes on your form.
 
Reply With Quote
 
 
 
 
Tom van Stiphout
Guest
Posts: n/a
 
      14th May 2010
On Fri, 14 May 2010 06:14:37 -0700 (PDT), shm135 <(E-Mail Removed)>
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

 
Reply With Quote
 
Jerry Whittle
Guest
Posts: n/a
 
      14th May 2010
If it's something pretty static, like all the US States and Territories, you
could save that data into a table then base a multi-select list box on it.
Then it's just a matter of clicking on all the state names. As a bonus, you
don't have to worry about misspelling things like Conneticut. ;-)
--
Jerry Whittle, Microsoft Access MVP
Light. Strong. Cheap. Pick two. Keith Bontrager - Bicycle Builder.


"shm135" wrote:

> 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
> .
>

 
Reply With Quote
 
KARL DEWEY
Guest
Posts: n/a
 
      14th May 2010
Another way, not the best, is to enter items separated by a space like this --
Alaska Alabama Texas
Use criteria --
Like "*" & [Enter item(s) for search] & "*"

It has drawbacks in that if you enter Bill it will pull Bill,
Billboard, and Billards.

--
Build a little, test a little.


"shm135" wrote:

> 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
> .
>

 
Reply With Quote
 
shm135
Guest
Posts: n/a
 
      14th May 2010
On May 14, 10:11*am, Tom van Stiphout <tom7744.no.s...@cox.net> wrote:
> On Fri, 14 May 2010 06:14:37 -0700 (PDT), shm135 <shmou...@gmail.com>
> 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- Hide quoted text -

>
> - Show quoted text -


Thank you all for your responses! I think I may have accidentally
marked one of your responses as SPAM- for that, I apologize!

You're right Tom. This is what I am doing now and it is not working:
select * from myTable where StateName in (Forms!myForm!myTextbox)

To further elaborate- I have a multiselect listbox, whose AFTERUPDATE
event transfers my selections to a textbox, with the word OR in
between. Then, I am setting the query criteria equal to the textbox.
If I make one selection, it works. More than one selection and it does
not work. In the end, I want to use my selections for an UPDATE query.
How can I go about this using the recordsource method you describe
above.

Essentially, I want to first pull out all of the records whose
statename is equal to my form textbox. Then, I want to be able to
update the Point of Contact field for multiple states at one time. How
do I do this?

Thanks!
 
Reply With Quote
 
shm135
Guest
Posts: n/a
 
      20th May 2010
On May 14, 12:00*pm, shm135 <shmou...@gmail.com> wrote:
> On May 14, 10:11*am, Tom van Stiphout <tom7744.no.s...@cox.net> wrote:
>
>
>
>
>
> > On Fri, 14 May 2010 06:14:37 -0700 (PDT), shm135 <shmou...@gmail.com>
> > 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- Hide quoted text -

>
> > - Show quoted text -

>
> Thank you all for your responses! I think I may have accidentally
> marked one of your responses as SPAM- for that, I apologize!
>
> You're right Tom. This is what I am doing now and it is not working:
> select * from myTable where StateName in (Forms!myForm!myTextbox)
>
> To further elaborate- I have a multiselect listbox, whose AFTERUPDATE
> event transfers my selections to a textbox, with the word OR in
> between. Then, I am setting the query criteria equal to the textbox.
> If I make one selection, it works. More than one selection and it does
> not work. In the end, I want to use my selections for an UPDATE query.
> How can I go about this using the recordsource method you describe
> above.
>
> Essentially, I want to first pull out all of the records whose
> statename is equal to my form textbox. Then, I want to be able to
> update the Point of Contact field for multiple states at one time. How
> do I do this?
>
> Thanks!- Hide quoted text -
>
> - Show quoted text -


Does anyone have any input to help? Thanks for your time.
 
Reply With Quote
 
shm135
Guest
Posts: n/a
 
      21st May 2010
On May 20, 5:39*pm, "PieterLinden via AccessMonster.com" <u49887@uwe>
wrote:
> shm135 wrote:
> >> > I'm guessing you have a query:
> >> > select * from myTable where StateName = Forms!myForm!myTextbox

> >[quoted text clipped - 66 lines]

>
> >> - Show quoted text -

>
> >Does anyone have any input to help? Thanks for your time.

>
> What did you need help with?
>
> --
> Message posted via AccessMonster.comhttp://www.accessmonster.com/Uwe/Forums.aspx/access-queries/201005/1


have a multiselect listbox, whose AFTERUPDATE
event transfers my selections to a textbox, with the word OR in
between. Then, I am setting the query criteria equal to the textbox.
If I make one selection, it works. More than one selection and it
does
not work. In the end, I want to use my selections for an UPDATE
query.
How can I go about this using the recordsource method you describe
above.


Essentially, I want to first pull out all of the records whose
statename is equal to my form textbox. Then, I want to be able to
update the Point of Contact field for multiple states at one time.
How
do I do this?
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Using a text box with multiple values and inserting in a query Joe Microsoft Access 0 25th Sep 2009 05:03 PM
Multiple paramerter values in one text box Praz Microsoft Access Queries 4 30th Dec 2008 05:04 PM
Adding multiple values in one column based on multiple values of the same value (text) in another column agrandstaff@hotmail.com Microsoft Excel Misc 1 16th May 2007 06:02 PM
Change Combo box values depending on values in text box =?Utf-8?B?UmVteVNT?= Microsoft Access VBA Modules 6 10th Jan 2006 12:55 PM
comparing a combo box values with text box values Julied_ng@ReMoVeThIshcts.net.au Microsoft Powerpoint 1 13th Jul 2005 01:13 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 08:43 PM.