|
Posted by Ol!v!ι on 10/14/05 15:35
You can create a temporary table in Access only by using Docmd.Runsql
"CREATE TABLE #...", and then using the table as a recordsource for a
form (just be sure to assign the recordsource after the creation of the
table). If you create a primary key in the table, you will be able to
edit it in your forms.
The temporary table will be dropped using a Docmd.Runsql "DROP TABLE
#.."-statement or when the connection from the front-end is closed.
In the procedure, you can then use the temporary table in the queries.
Neil wrote:
> The machine name changing isn't an issue, since these selections are
> temporary -- maybe a few hours or overnight at the most. They're not
> permanent entities.
>
> Also, if I use a temporary table, I'm not sure how I would bring that into
> the front end except through a pass-through query. In that case, it would be
> read-only.
>
> Thus, I think it's best that I work with a view that joins the two table or
> some other method that allows me to link it via ODBC. I'm a little leary
> about the approach I outlined in my message since it means that the view
> will have X records x Y machines, which would make it very large. Granted,
> it would only return the records for the current machine. Still, it seems
> that there would be a large number of records initially dealt with.
>
> Thanks,
>
> Neil
>
>
> "SriSamp" <ssampath@sct.co.in> wrote in message
> news:eu6QXyJ0FHA.1040@TK2MSFTNGP14.phx.gbl...
>
>>Relying on machine names may be difficult, since if the machine name
>>changes, your code will not work (not that it is very frequent, but it
>>happens). One technique that I've seen people use is to have a local MDB
>>table itself for making the selections. You can then form a
>>comma-separated list of IDs that is then sent to a backend procedure. In
>>this procedure, you can conver the comma-separated values into a temp
>>table (using the techniques in:
>>http://www.algonet.se/~sommar/arrays-in-sql.html) and then do the join
>>with the actual table to show the results back.
>>--
>>HTH,
>>SriSamp
>>Email: srisamp@gmail.com
>>Blog: http://blogs.sqlxml.org/srinivassampath
>>URL: http://www32.brinkster.com/srisamp
>>
>>"Neil" <nospam@nospam.net> wrote in message
>>news:1LJ3f.1105$hY6.775@newsread1.news.pas.earthlink.net...
>>
>>>I am using SQL 7 with an MS Access 2000 MDB front end, using bound forms
>>>with ODBC linked tables. In one form, the user needs to be able to check a
>>>box to select one or more records. This is accomplished with a local table
>>>containing two fields: the primary key value of the SQL table and a
>>>boolean field used for the check box.
>>>
>>>Since the local table used to contain the boolean field is local to the
>>>MDB file, the result is a heterogeneous join in the underlying form
>>>query, which degrades performance. I would like to have the entire query
>>>be based on back end SQL data. However, each user needs to be able to
>>>make a unique set of selections, without other users' selections
>>>affecting theirs.
>>>
>>>An idea I have is to port the selections table to the back end with an
>>>additional field for machine name; create a view of the main table joined
>>>to the selections table; link the view to the front end; and base the
>>>form on the SQL: "Select * From MyView Where MachineName='MyMachine'".
>>>
>>>However, I wonder if there's a better approach. Any ideas would be
>>>appreciated.
>>>
>>>Thanks,
>>>
>>>Neil
>>>
>>
>>
>
>
[Back to original message]
|