I'm trying to do it in VBA, so I can change the target table in my append
query, and not have to make 4 or 5 different queries. Instead, I just
want
one query, while modifying the criteria and the target table of the Append
Query. Someone gave me a start with:
Dim strSQL as String
Dim dbf as Database
Dim tdfs as TableDefs
Dim tdf as TableDef
'Set up object variables
Set dbf = CurrentDb
Set tdfs = dbf.TableDefs
Set tdf = tdfs("MyQueryName")
'Get the SQL string for the query
strSQL = tdf.SQL
'Replace the old name with the new name in the SQL
strSQL = Replace(strSQL, "OldTableName", "NewTableName")
'Runs the append query with the selected table name
dbf.Execute(strSQL)
'Note, we don't change the name in the original saved query so we don't
know
what it is next time we need it. The Execute method above is the same as
running the query any other way and is about 5 times faster than then
RunSql
method.
'Destroy object variables
Set tdf = Nothing
Set tdfs = Nothing
Set dbf = Nothing
So I was just trying to put my SQL string together and was having
problems.
Ken Snell (MVP) said:
What are you doing with the SQL string when it's built? That can affect
how
you would handle this.
In general, you would concatenate the actual value from the parameter
into
the string:
MyString = "WHERE VcValue.Site=" & [forms]![VcValueSubform]![site] & _
" AND VcValue.Year=" & [forms]![VcValueSubform]![txtSubyear]
(above assumes that both fields are numeric).
--
Ken Snell
<MS ACCESS MVP>
I have not been able to find a translation of 2 conditions of a query to
be
properly coded in VBA. I know this is pretty basic, but I'm
struggling.
How
do I say this in my strSQL string in VBA? Thanks.
WHERE (((VcValue.Site)=[forms]![VcValueSubform]![site]) AND
((VcValue.Year)=[forms]![VcValueSubform]![txtSubyear]));