By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,358 Members | 2,811 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,358 IT Pros & Developers. It's quick & easy.

back to basics, adding and editing Table records from a Form, proper procdures

P: n/a
RC
I have an Access 2002 database with many tables and forms (but just to
keep things simple, let's say the DB has one Table "Table1" and one
Form "Form1").
I have managed to cobble together so much complex code to add records
and edit records I need to step back and ask you all what is the
proper way to do this. The database is DAO. The table has Columns
SerialNumber, CPU, HardDrive and Model. I am trying to use a Form to
fill out the Table values. Each SerialNumber needs the CPU, HardDrive
and Model to be specified. I am using a Form with the Form's record
source set to Table1. On the Form I dragged and dropped the
SerialNumber, CPU, HardDrive and Model fields from the fields list to
the Form.
What is the proper way to add a new record and also what is the proper
way to update an existing record. Should the SerialNumber form field
have a FindFirst set to look for the Serial Number and if the
SerialNumber is not found, then ?? rs.addnew? rs.edit then
rs.Fields("CPU") = me.CPU.value? etc., and then rs.update? Most of
the information will be the same from Serial Number to Serial Number
so it would be nice if the Form fields could retain the last value
that was entered in them so that when the next serial number is typed
into the SerialNumber box, you would only need to change whatever is
different not enter a value in each form field again. The table
field/columns are all text. Should I use code like this?
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = Me.Recordset
rs.FindFirst "[SerialNumber] = " & Me.SerialNumberBox

If rs.NoMatch Then ??? '(the rs.edit? or rs.addnew?
Me.Bookmark = rs.Bookmark ??? "Do I need to this? Where does it
belong?
rs.edit
rs.Fields("SerialNumber") = me.SerialNumber.value
rs.Fields("CPU") = me.CPU.value
rs.Fields("HardDrive") = me.HardDrive.value
rs.Model("Model") = me.Model.value
rs.update

what about rs.movelast ??
rs.close
set rs = nothing

Thanks for the help.
Nov 13 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
rc*********@yahoo.com (RC) wrote in message news:<3c*************************@posting.google.c om>...
I have an Access 2002 database with many tables and forms (but just to
keep things simple, let's say the DB has one Table "Table1" and one
Form "Form1").
I have managed to cobble together so much complex code to add records
and edit records I need to step back and ask you all what is the
proper way to do this. The database is DAO. The table has Columns
SerialNumber, CPU, HardDrive and Model. I am trying to use a Form to
fill out the Table values. Each SerialNumber needs the CPU, HardDrive
and Model to be specified. I am using a Form with the Form's record
source set to Table1. On the Form I dragged and dropped the
SerialNumber, CPU, HardDrive and Model fields from the fields list to
the Form.
What is the proper way to add a new record and also what is the proper
way to update an existing record. Should the SerialNumber form field
have a FindFirst set to look for the Serial Number and if the
SerialNumber is not found, then ?? rs.addnew? rs.edit then
rs.Fields("CPU") = me.CPU.value? etc., and then rs.update? Most of
the information will be the same from Serial Number to Serial Number
so it would be nice if the Form fields could retain the last value
that was entered in them so that when the next serial number is typed
into the SerialNumber box, you would only need to change whatever is
different not enter a value in each form field again. The table
field/columns are all text. Should I use code like this?
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = Me.Recordset
rs.FindFirst "[SerialNumber] = " & Me.SerialNumberBox

If rs.NoMatch Then ??? '(the rs.edit? or rs.addnew?
Me.Bookmark = rs.Bookmark ??? "Do I need to this? Where does it
belong?
rs.edit
rs.Fields("SerialNumber") = me.SerialNumber.value
rs.Fields("CPU") = me.CPU.value
rs.Fields("HardDrive") = me.HardDrive.value
rs.Model("Model") = me.Model.value
rs.update

what about rs.movelast ??
rs.close
set rs = nothing

Thanks for the help.

My guess is that you could probably do most of this by just changing
the default values for the relevant fields right on the form. Doing
all this is probably more trouble than it's worth...
Source: http://www.mvps.org/access/forms/frm0012.htm

Carry current value of a control to new records
Author(s)
Dev Ashish

(Q) How do I carry forward the current value of a control so that
it's automatically entered for all new records?

(A) To use the curent control value for new records, you need to
assign it to the defaultvalue of the control. For example something
like

'******** Code Start **********
const cQuote="""" 'Thats two quotes
me!Control.DefaultValue = cQuote & me!Control.Value & cQuote
'******** Code End **********

would carry the current value of the control forward if you place
this code behind a command button to conditionally run it.
HTH
Pieter
Nov 13 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.