John Spencer's VALUES() approach is indeed the right way to go about
this - thanks John!
John,
I'm not quite sure what you mean by "You're slecting
the form references FROM PipeData - if PipeData has 11
you'll get a thousand new records!"
That's how Queries work. Take your original APPEND query and turn back
into just a simple Select query. You'll see that it's selecting every
record in the PipeData table - eleven records in this case.
If you then turn it back into an Append query, it will append just
that many records. You're telling Access to select every single record
in PipeData and do something (in this case, append data from a Form)
with it. The fact that you're not actually doing anything with the
fields in the existing PipeTable records is immaterial; you're
selecting 11 records from the table, and each one of them will be
treated as a new record by the append query.
More importantly I
need to research and understand the "Bound Form." As you
can see I'm in a continuing phase of understanding Access
and its features. I'd be happy to hear any advice you
have. Thanks for your help.
Try creating a new Form using the Form Wizard, based on the PipeData
table. This Form will present you with a textbox for each field in
PipeData. You can simply type data into these fields, and that data
will be written automatically to the table. No code is needed at all.
This is called a "bound" form because the Form is "bound" to the table
- it displays the data that's in the table, and lets you update
existing records or add new records to the table.
Your technique, using an Append query, is in fact a valuable method if
there is some good reason NOT to use the default bound form method;
for instance, the Table might be stored externally in SQL/Server or
some other database, or there might be a lot of contention among users
for access to the table. But it's an *advanced technique*. You might
want to experiment with the simpler bound forms first, and decide
whether you need to go to the extra complexity!