Results 1 to 15 of 15
  1. #1
    rateri22 is offline Novice
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    7

    Using a form as a criteria in a select query

    Hello.



    I am trying to use a form (dialog box) as a criteria in a select query in order to show the user all the options avaliable before running the query. I am preaty sure that I am doing everything (probably almost) right. I mean, the dialog box is ok and I am inputing the right combo box reference in the query criteria. What happens is that everytime I run the query it opens the "Enter Parameter Value" dialog box with my combo box reference wrote on it.

    Does anyone know what might be wrong?

    I already made several research and followed many tutorials so I guess I am preatty close at least.

    Thanks for helping

    Rafael

  2. #2
    jzwp11 is offline VIP
    Windows 7 64bit Access 2010 64bit
    Join Date
    Jun 2010
    Location
    Dayton, OH
    Posts
    2,901
    Could you post the SQL text of your query?

    Also, what is the bound field of the combo box? Is it a text field or a numeric field?

  3. #3
    nigelbloomy is offline Advanced Beginner
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    51
    In design mode on the query, check the "parameters" button on the top right. Even if your form is passing in the right info, if something is in this parameters dialogue box, it will still pop up with a question for the user.

    Are you putting this formula into your query criteria? [Forms]![Name of the Form]![Name of the dialog box]

    Also, the form needs to be open and have information in it for the query to run. I know that might sound like a simple thing, but I have had that happen several times when I run a query after I closed the form with the data the query needed.

  4. #4
    rateri22 is offline Novice
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    7
    Thanks for replying

    Well, first of all, the bound field in the combo box is a text field.

    There is nothing wrote in "parameters".

    The formula in the query criteria is like this [Forms]![Name of the Form]![Name combo box]

    And for the last question, what I want exactly is that the query opens the form and then user inputs the information in the combo box to run the select query with the "OK" button. It is similar to the regular procedure of input only one criteria to run the select query. But the thing is that I would like to show the user a list of the options (combo box) of the information in the data base and then run the select query with this information.

    I will try to set an hipotitical exemple this. Imagine a data base of products in a store. We can have the ID, Classification, Description and Cost fields, for exemple. So, everytime a new product is registered the user must classify this product into the existing categories or add new ones (Lets say we have only two categories for now: Books; CD's). What I would like to do is to do a select query using a dialog box that shows the options of the existing categories (Books; CD's) and keeps being feeded with new categories as new products are registered.

    I'm sorry, I'm not an expert user, so I don't know exactly how to extract the SQL text of the query.

    Thanks again for the help.

    Rgs



  5. #5
    jzwp11 is offline VIP
    Windows 7 64bit Access 2010 64bit
    Join Date
    Jun 2010
    Location
    Dayton, OH
    Posts
    2,901
    To view the SQL text, just switch from the design grid view to the SQL view (use the View icon on the ribbon).

    The SQL text should have at a minimum a SELECT clause which tells Access which fields to display in the query. Next would be a FROM clause which tells Access where the data resides (has to be a table or a query)

    In your case you should also have a WHERE clause which is the criteria part of the query.

  6. #6
    rateri22 is offline Novice
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    7
    Here it goes the SQL code

    SELECT [Banco de Dados de Comparativos_1].[Código EYT], [Banco de Dados de Comparativos_1].[Data da cotação], [Banco de Dados de Comparativos_1].[Origem do comparativo], [Banco de Dados de Comparativos_1].[Nome do Engagement], [Banco de Dados de Comparativos_1].[Código do Engagement], [Banco de Dados de Comparativos_1].[Tipo de comparativo], [Banco de Dados de Comparativos_1].[Classificação EYT], [Banco de Dados de Comparativos_1].[Fornecedor/Representante], [Banco de Dados de Comparativos_1].Fabricante, [Banco de Dados de Comparativos_1].Modelo, [Banco de Dados de Comparativos_1].[Data de fabricação], [Banco de Dados de Comparativos_1].[Tipo de capacidade 1], [Banco de Dados de Comparativos_1].[Capacidade 1], [Banco de Dados de Comparativos_1].[Unidade 1], [Banco de Dados de Comparativos_1].[Tipo de capacidade 2], [Banco de Dados de Comparativos_1].[Capacidade 2], [Banco de Dados de Comparativos_1].[Unidade 2], [Banco de Dados de Comparativos_1].[Nome do contato], [Banco de Dados de Comparativos_1].[Telefone do contato], [Banco de Dados de Comparativos_1].[E-mail do contato], [Banco de Dados de Comparativos_1].Website, [Banco de Dados de Comparativos_1].Observações, [Banco de Dados de Comparativos_1].[País de origem], [Banco de Dados de Comparativos_1].Moeda, [Banco de Dados de Comparativos_1].Valor, [Banco de Dados de Comparativos_1].Frete, [Banco de Dados de Comparativos_1].[% frete internacional], [Banco de Dados de Comparativos_1].[Valor de frete internacional], [Banco de Dados de Comparativos_1].[% seguros e/ ou outros], [Banco de Dados de Comparativos_1].[Valor de seguros e/ ou outros], [Banco de Dados de Comparativos_1].[% despesas aduaneiras], [Banco de Dados de Comparativos_1].[Valor de despesas aduaneiras], [Banco de Dados de Comparativos_1].[% imposto de importação], [Banco de Dados de Comparativos_1].IPI, [Banco de Dados de Comparativos_1].ICMS, [Banco de Dados de Comparativos_1].[PIS e COFINS], [Banco de Dados de Comparativos_1].[% frete nacional], [Banco de Dados de Comparativos_1].[Valor de frete nacional], [Banco de Dados de Comparativos_1].[% custo de instalação], [Banco de Dados de Comparativos_1].[Valor de custo de intalação], [Banco de Dados de Comparativos_1].[Valor da máquina], [Banco de Dados de Comparativos_1].[Foto 1], [Banco de Dados de Comparativos_1].[Foto 2], [Banco de Dados de Comparativos_1].[Arquivo em PDF]
    FROM [Banco de Dados de Comparativos], [Banco de Dados de Comparativos] AS [Banco de Dados de Comparativos_1]
    WHERE ((([Banco de Dados de Comparativos_1].[Classificação EYT])=[Forms]![Seleção de Comparativos]![Combo1]));

  7. #7
    jzwp11 is offline VIP
    Windows 7 64bit Access 2010 64bit
    Join Date
    Jun 2010
    Location
    Dayton, OH
    Posts
    2,901
    The WHERE clause of the query looks OK; however, the WHERE clause is includes 2 tables without a specified join. This is definitely possible, but it yields a Cartesion Product of the two tables. Is that really what you need/want?

    And for the last question, what I want exactly is that the query opens the form and then user inputs the information in the combo box to run the select query with the "OK" button. It is similar to the regular procedure of input only one criteria to run the select query. But the thing is that I would like to show the user a list of the options (combo box) of the information in the data base and then run the select query with this information.
    A query cannot open a form. What you typically do is base a form on the query (without the criteria). You would have another form with the combo box and a button. When you click the button on that form, the form (based on the query) will open with the data filtered based on the combo box selection.

  8. #8
    rateri22 is offline Novice
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    7
    I'm sorry but, are there 2 tables in the WHERE clause? I see just [Banco de Dados de Comparativos_1], the [Classificação EYT] is the field I want to do the selection if it maches with the criteria of the combo box.

    I think what I need is explained in this link
    http://office.microsoft.com/en-us/ac...001117077.aspx
    in the "Creating a form to supply parameters to a query" session. But for some reason it does not works.

  9. #9
    jzwp11 is offline VIP
    Windows 7 64bit Access 2010 64bit
    Join Date
    Jun 2010
    Location
    Dayton, OH
    Posts
    2,901
    FROM [Banco de Dados de Comparativos] , [Banco de Dados de Comparativos] AS [Banco de Dados de Comparativos_1]
    Actually it looks like you have the same table twice (with and without an alias) in the FROM clause (not the WHERE clause). I would remove one of them.

    Could you zip and post a copy of the database with any sensitive data removed? Make sure to run the compact & repair utility available from the Access Tools menu before zipping the file.

  10. #10
    rateri22 is offline Novice
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    7

  11. #11
    jzwp11 is offline VIP
    Windows 7 64bit Access 2010 64bit
    Join Date
    Jun 2010
    Location
    Dayton, OH
    Posts
    2,901
    Could you not post the zipped file directly to your post (use the Go Advanced button below the area where you type and then click on the paper clip icon to attach a file)? I do not want to signup for the download service on the site for where your database is located.

  12. #12
    rateri22 is offline Novice
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    7
    Sure, there you go. Sorry I'm new here.
    Attached Files Attached Files

  13. #13
    jzwp11 is offline VIP
    Windows 7 64bit Access 2010 64bit
    Join Date
    Jun 2010
    Location
    Dayton, OH
    Posts
    2,901
    There are two fields in the SELECT query that are not in the table. I show those two fields in red below. That is what the parameter dialog boxes are requesting. One of those fields is also in your WHERE clause.

    SELECT [Banco de Dados de Comparativos_1].[Código EYT], [Banco de Dados de Comparativos_1].[Data da cotação], [Banco de Dados de Comparativos_1].[Origem do comparativo], [Banco de Dados de Comparativos_1].[Nome do Engagement], [Banco de Dados de Comparativos_1].[Código do Engagement], [Banco de Dados de Comparativos_1].[Tipo de comparativo], [Banco de Dados de Comparativos_1].[Classificação EYT], [Banco de Dados de Comparativos_1].[Fornecedor/Representante], [Banco de Dados de Comparativos_1].Fabricante, [Banco de Dados de Comparativos_1].Modelo, [Banco de Dados de Comparativos_1].[Data de fabricação], [Banco de Dados de Comparativos_1].[Tipo de capacidade 1], [Banco de Dados de Comparativos_1].[Capacidade 1], [Banco de Dados de Comparativos_1].[Unidade 1], [Banco de Dados de Comparativos_1].[Tipo de capacidade 2], [Banco de Dados de Comparativos_1].[Capacidade 2], [Banco de Dados de Comparativos_1].[Unidade 2], [Banco de Dados de Comparativos_1].[Nome do contato], [Banco de Dados de Comparativos_1].[Telefone do contato], [Banco de Dados de Comparativos_1].[E-mail do contato], [Banco de Dados de Comparativos_1].Website, [Banco de Dados de Comparativos_1].Observações, [Banco de Dados de Comparativos_1].[País de origem], [Banco de Dados de Comparativos_1].Moeda, [Banco de Dados de Comparativos_1].Valor, [Banco de Dados de Comparativos_1].Frete, [Banco de Dados de Comparativos_1].[% frete internacional], [Banco de Dados de Comparativos_1].[Valor de frete internacional], [Banco de Dados de Comparativos_1].[% seguros e/ ou outros], [Banco de Dados de Comparativos_1].[Valor de seguros e/ ou outros], [Banco de Dados de Comparativos_1].[% despesas aduaneiras], [Banco de Dados de Comparativos_1].[Valor de despesas aduaneiras], [Banco de Dados de Comparativos_1].[% imposto de importação], [Banco de Dados de Comparativos_1].IPI, [Banco de Dados de Comparativos_1].ICMS, [Banco de Dados de Comparativos_1].[PIS e COFINS], [Banco de Dados de Comparativos_1].[% frete nacional], [Banco de Dados de Comparativos_1].[Valor de frete nacional], [Banco de Dados de Comparativos_1].[% custo de instalação], [Banco de Dados de Comparativos_1].[Valor de custo de intalação], [Banco de Dados de Comparativos_1].[Valor da máquina], [Banco de Dados de Comparativos_1].[Foto 1], [Banco de Dados de Comparativos_1].[Foto 2], [Banco de Dados de Comparativos_1].[Arquivo em PDF]
    FROM [Banco de Dados de Comparativos], [Banco de Dados de Comparativos] AS [Banco de Dados de Comparativos_1]
    WHERE ((([Banco de Dados de Comparativos_1].[Classificação EYT])=[Forms]![Seleção de Comparativos]![Combo1]));

    Further, the query you showed in your earlier post is different from the query that is in the database you posted. As you can see below Access assigned Expr# to the two fields since they are not in the table.

    SELECT [Banco de Dados de Comparativos_1].[Código EYT] AS Expr1, [Banco de Dados de Comparativos_1].[Data da cotação], [Banco de Dados de Comparativos_1].[Origem do comparativo], [Banco de Dados de Comparativos_1].[Nome do Engagement], [Banco de Dados de Comparativos_1].[Código do Engagement], [Banco de Dados de Comparativos_1].[Tipo de comparativo], [Banco de Dados de Comparativos_1].[Classificação EYT] AS Expr2, [Banco de Dados de Comparativos_1].[Fornecedor/Representante], [Banco de Dados de Comparativos_1].Fabricante, [Banco de Dados de Comparativos_1].Modelo, [Banco de Dados de Comparativos_1].[Data de fabricação], [Banco de Dados de Comparativos_1].[Tipo de capacidade 1], [Banco de Dados de Comparativos_1].[Capacidade 1], [Banco de Dados de Comparativos_1].[Unidade 1], [Banco de Dados de Comparativos_1].[Tipo de capacidade 2], [Banco de Dados de Comparativos_1].[Capacidade 2], [Banco de Dados de Comparativos_1].[Unidade 2], [Banco de Dados de Comparativos_1].[Nome do contato], [Banco de Dados de Comparativos_1].[Telefone do contato], [Banco de Dados de Comparativos_1].[E-mail do contato], [Banco de Dados de Comparativos_1].Website, [Banco de Dados de Comparativos_1].Observações, [Banco de Dados de Comparativos_1].[País de origem], [Banco de Dados de Comparativos_1].Moeda, [Banco de Dados de Comparativos_1].Valor, [Banco de Dados de Comparativos_1].Frete, [Banco de Dados de Comparativos_1].[% frete internacional], [Banco de Dados de Comparativos_1].[Valor de frete internacional], [Banco de Dados de Comparativos_1].[% seguros e/ ou outros], [Banco de Dados de Comparativos_1].[Valor de seguros e/ ou outros], [Banco de Dados de Comparativos_1].[% despesas aduaneiras], [Banco de Dados de Comparativos_1].[Valor de despesas aduaneiras], [Banco de Dados de Comparativos_1].[% imposto de importação], [Banco de Dados de Comparativos_1].IPI, [Banco de Dados de Comparativos_1].ICMS, [Banco de Dados de Comparativos_1].[PIS e COFINS], [Banco de Dados de Comparativos_1].[% frete nacional], [Banco de Dados de Comparativos_1].[Valor de frete nacional], [Banco de Dados de Comparativos_1].[% custo de instalação], [Banco de Dados de Comparativos_1].[Valor de custo de intalação], [Banco de Dados de Comparativos_1].[Valor da máquina], [Banco de Dados de Comparativos_1].[Foto 1], [Banco de Dados de Comparativos_1].[Foto 2], [Banco de Dados de Comparativos_1].[Arquivo em PDF]
    FROM [Banco de Dados de Comparativos], [Banco de Dados de Comparativos] AS [Banco de Dados de Comparativos_1]
    WHERE ((([Banco de Dados de Comparativos_1].[Classificação EYT])=[Forms]![Seleção de Comparativos]![Combo1]));



    Based on the field names in your table, I would guess that Codigo EYT should be Codigo and Classificacao EYT should be Classificacao. If I correct those field names in your query, the query does run from the button on your form. However, it does not return any results. The reason for this is that the bound field of the combo box is codigo not classificacao. If I assume that you may have many records of the same classificacao, and that is what you want to show up in your query results then we cannot have the codigo field in the combo box's row source. Further, you may have many records with the same classificacao, so we need to limit the combo box's row source to show the each classificacao to each classificacao only once. To do this we have to add the DISTINCT predicate to the combo box's row source.

    The row source was this: SELECT [Banco de Dados de Comparativos].[Código], [Banco de Dados de Comparativos].[Classificação] FROM [Banco de Dados de Comparativos] ORDER BY [Classificação];

    I changed it to this: SELECT DISTINCT [Banco de Dados de Comparativos].Classificação FROM [Banco de Dados de Comparativos] ORDER BY [Banco de Dados de Comparativos].[Classificação];

    I also adjusted the column widths and column count properties of the combo box to adjust for removing the codigo field from the row source.



    The amended database is attached. I also removed the alias for the table in your main query. There was no need to have an alias in this case.
    Attached Files Attached Files

  14. #14
    rateri22 is offline Novice
    Windows XP Access 2007
    Join Date
    Jul 2012
    Posts
    7
    It works perfectly. I thank you very much for all you help and attention.

    What I just don't understand is why access created automaticaly the bound of the combo box with two fields. My intention was have just Classificação in that combo box, and thats what I selected. Is this normal in this kind of situation? I mean, I would really have to erase the other field manually?

    Another important thing was the DISTINCT predicate of the combo box. I didn't know such option. Now it is much better.

    Again, thank you very much. I appreciate all help.

  15. #15
    jzwp11 is offline VIP
    Windows 7 64bit Access 2010 64bit
    Join Date
    Jun 2010
    Location
    Dayton, OH
    Posts
    2,901
    What I just don't understand is why access created automaticaly the bound of the combo box with two fields. My intention was have just Classificação in that combo box, and thats what I selected. Is this normal in this kind of situation? I mean, I would really have to erase the other field manually?
    I noticed the same thing in another database I just created for use on another post. Access automatically added the primary key, so I had to remove it after the combo box wizard finished. I also had to adjust the column count and the column widths accordingly. I'm not sure why the wizard does that. Of course, you can create the combo box without the help of the wizard.

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 18
    Last Post: 07-18-2012, 01:08 PM
  2. Multi-Select List Box as Criteria in Query
    By broadwat in forum Queries
    Replies: 6
    Last Post: 09-19-2011, 07:47 AM
  3. Select Query on Criteria or Blank?
    By batowl in forum Queries
    Replies: 4
    Last Post: 08-17-2011, 02:34 PM
  4. Replies: 1
    Last Post: 05-18-2011, 12:23 PM
  5. Select query with two criteria
    By corni in forum Queries
    Replies: 1
    Last Post: 01-22-2009, 05:23 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums