VB6, Access97 SQL syntax

Posted on 2000-02-16
Last Modified: 2010-05-02
Need to refer to a textbox while querying Access97:
SELECT * FROM Bills WHERE ??????????
I Need to refer to Text1 on Form4.
I tried [Forms]![Form4]![Text1] and
Forms.Form4.Text1, also with .text behind the "Text1" and several variations. I'm sure someone has this on the tip of their tongue. Perhaps
p biggelaar?
Question by:jtallsup
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +2
LVL 70

Expert Comment

by:Éric Moreau
ID: 2528875
Your query should like this:
"SELECT * FROM Bills WHERE FieldName = '" & replace(form4.text1.text, "'", "''") & "'"

Expert Comment

ID: 2528878
You should only have to do:


to get the textbox value.

Expert Comment

ID: 2528879
MTroutwine changed the proposed answer to a comment
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

ID: 2528943
SELECT *froM Bills WHERE yourField='" & form4.text1.Text & "'"
(so you'll get select * from Bills where yourField='sometext'

aka, text/string values need to be quoted)

Author Comment

ID: 2529069
Returns no records, unless my old eyeballs can't see all those quote marks. I'm a beginner, so I could have something else screwed up, though I don't think so. The field I'm referring to (Text1)is not bound to anything, could that make any difference?

Expert Comment

ID: 2529089
have you tried that query in access directly?
does that work?
are you selecting on the right field?
does text4.Text have a value?

Author Comment

ID: 2529121
No, I haven't tried it directly in access, but the field does have a value, and the query works in all other respects other than this criteria. Could you possibly type your answer out in such a way that I know I'm not misreading the quotes? ie, singleq, doubleq, etc? If you go to that much trouble I'll award you the points regardless of whether or not I can get it to work. As I said, I'm a beginner, and I may have something else screwed up. This isn't an absolute requirement for what I'm working on. It would just make it a little cleaner.

Expert Comment

ID: 2529201

I must say I'm pleasantly surprised by your confidence in me. Now let's say if I can help.

Syntax like "Select * from Bills where [Field]=[Forms]![Form4]![text1]" should work, but only when you use this select statement from within Access while (the Access form) Form4 is loaded.

In case
- Form4 is not loaded
- you're trying this from outside Access
- you're referring to a VB form, not an Access form
it won't work.

Please tell me, where are you using the select statement and what is your code 'surrounding' this statement

Author Comment

ID: 2529298
OK, guess I wasn't too clear. I am indeed outside access. This is a command from within VB Dataenvironment, refering to a VB Form, which is open.

Expert Comment

ID: 2529379
Oh, then you can't use that syntax. The forms collection is something that Access has, but VB is built differently and doesn't have a forms collection.

Okay. You're command should look something like:

Select * from Bills where MyField=AValue

Assuming AValue doesn't exist, then you can go to the parameter tab of the command and validate that the command object now has AValue as a parameter.

Say you want to validate the values whenever you press a button (if it is another event: feel free) then something like this should be in your button_Click:

    DataEnvironment1.Commands("NameOfCommand").Parameters("Avalue").Value = Text1.Text
    Set txtWhereTheDataShouldBeShown.DataSource = DataEnvironment1

This should do it.

Good luck...

Accepted Solution

p_biggelaar earned 50 total points
ID: 2529383
I assumed that text1.text is on the same form as where you want to change the shown data. Otherwise you can use syntax like form1.text1.text to make sure your referring to the right textboxes on the right form.
LVL 70

Expert Comment

by:Éric Moreau
ID: 2529399
Can you please past your code because with all the things that have been written, it is supposed to work from a long time!

Author Comment

ID: 2529496
Don't quite have it yet, but you definitely have me on the right track. Thanks for the help.

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Using "ScreenUpdating" 6 86
Copy a row 12 75
Child Form in front 4 66
MsgBox 4 76
There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question