21

Hi I need to create a query in MSAccess 2003 through code (a.k.a. VB) -- how can I accomplish this?

4 Answers 4

40

A vague answer for a vague question :)

strSQL="SELECT * FROM tblT WHERE ID =" & Forms!Form1!txtID 

Set qdf=CurrentDB.CreateQueryDef("NewQuery",strSQL)
DoCmd.OpenQuery qdf.Name
Sign up to request clarification or add additional context in comments.

1 Comment

Ugh I've been trying things similar to this for the past 3 hours :( Thanks a bunch
9
Dim strSql As String 'as already in example
Dim qdf As QueryDef 'as already in example

strSql = "SELECT * FROM tblT WHERE ID =" & Forms!Form1!txtID 'as already in example

On Error Resume Next
'Delete the query if it already exists
DoCmd.DeleteObject acQuery, "NewQuery"

Set qdf = CurrentDb.CreateQueryDef("NewQuery", strSql) 'as already in example
DoCmd.OpenQuery qdf.Name 'as already in example

'release memory
qdf.Close 'i changed qdef to qdf here and below
Set qdf = Nothing

Comments

8

Thanks for this answer and the small piece of code. If somebody needs to define the datatypes for the variables used, use this:

    Dim strsql As Variant
    Dim qdf As QueryDef

Comments

0

You don't need to open the query, you can just write the first 2 lines,

strSQL="SELECT * FROM tblT WHERE ID =" & Forms!Form1!txtID Set qdf=CurrentDB.CreateQueryDef("NewQuery",strSQL)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.