Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / General 1 / December 2005

Tip: Looking for answers? Try searching our database.

Carry data over to new record...

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
campbellbrian2001@yahoo.com - 30 Dec 2005 20:07 GMT
I'm trying to get the "Carry data over to new record"
code to work from Allen Browne's site:
http://allenbrowne.com/ser-24.html
I follwed the instruction explicitly and somethings not working... any
clues?

Thanks all!!
Brian
John Welch - 30 Dec 2005 21:05 GMT
Is your computer plugged in?
Seriously, though, if you just say "something's not working", no one is
going to have any idea how to help you.
Here is a link that has some tips on asking questions so that you get good
help-
http://www.mvps.org/access/netiquette.htm

-John

> I'm trying to get the "Carry data over to new record"
> code to work from Allen Browne's site:
[quoted text clipped - 4 lines]
> Thanks all!!
> Brian
campbellbrian2001@yahoo.com - 30 Dec 2005 21:33 GMT
Sorry!
Here's what I did..
Open a new form in Design View with 4 text boxes bound to 4 fields in a
table.
In the Properties Box, selected the BeforeInsert event, and typed in
[Event Procedure]
"Call CarryOver(Me)"
Created a module "basCarryOver" and typed this code:

Sub CarryOver(frm As Form)
On Error GoTo Err_CarryOver
' Purpose:  Carry the values over from the last record to a new one.
' Usage:   In a form's BeforeInsert event procedure, enter:
'                   Call CarryOver(Me)
' Notes:    This example limited to text boxes and combo boxes.
'           Text/combo boxes must have same Name as the fields they
represent.
   Dim rst As DAO.Recordset
   Dim ctl As Control
   Dim i As Integer

   Set rst = frm.RecordsetClone
   If rst.RecordCount > 0 Then
       rst.MoveLast
       For i = 0 To frm.count - 1
           Set ctl = frm(i)
           If TypeOf ctl Is TextBox Then
               If Not IsNull(rst(ctl.Name)) Then
                   ctl = rst(ctl.Name)
               End If
           ElseIf TypeOf ctl Is ComboBox Then
               If Not IsNull(rst(ctl.Name)) Then
                   ctl = rst(ctl.Name)
               End If
           End If
       Next
   End If

Exit_CarryOver:
   Set rst = Nothing
   Exit Sub

Err_CarryOver:
   Select Case Err
   Case 2448         'Cannot assign a value
       Debug.Print "Value cannot be assigned to " & ctl.Name
       Resume Next
   Case 3265         'Name not found in this collection.
       Debug.Print "No matching field name found for " & ctl.Name
       Resume Next
   Case Else
       MsgBox "Carry-over values were not assigned, from " & ctl.Name
& _
           ". Error #" & Err.Number & ": " & Err.Description,
vbExclamation, "CarryOver()"
       Resume Exit_CarryOver
   End Select
End Sub

The record selector gives a new record but without the text boxes
pre-filled with the last record's values.

Thanks!   Brian
John Welch - 30 Dec 2005 23:49 GMT
Ok, that's better. Does your event procedure look like this:

Private Sub Form_BeforeInsert(Cancel As Integer)
Call CarryOver(Me)
End Sub

And are the names of your textboxes exactly the same as the fields they are
bound to?

It's not clear if the function is getting called at all (being able to go to
a new record with the record selector isnt proof), so you could put this
line:
msgbox "Carry Over was called"
after the dim statements in the CarryOver procedure to make sure it got
called.

hope this helps
-John

> Sorry!
> Here's what I did..
[quoted text clipped - 59 lines]
>
> Thanks!   Brian
Lyle Fairfield - 31 Dec 2005 02:23 GMT
I like to use

With DoCmd
   .RunCommand acCmdSelectRecord
   .RunCommand acCmdCopy
   .RunCommand acCmdPasteAppend
End With

called with a Command Button's OnClick or a PopUp Menu Selection.

This permits "carrying" the values of any record, not just the last
entered or showing. More clicks are not required as the button creates
a new record with just one click.
One can have problems with unique indexes / primary keys / counters but
if one thinks things out carefully these can be overcome.
Allen Browne - 31 Dec 2005 02:44 GMT
To help you debug your code,
1. Check that it compiles okay, by choosing Compile on the Debug menu.

2. Temporarily comment out the error handler, by adding a single quote to
the first line:
       'On Error GoTo Err_CarryOver

3. Immedately below that, enter:
       Stop

Now when the code runs, it will stop and highlight the Stop line. You can
then press F8 to single-step through the code, and see what is happening
until you identify the problem.

Signature

Allen Browne - Microsoft MVP.  Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

> Sorry!
> Here's what I did..
[quoted text clipped - 59 lines]
>
> Thanks!   Brian
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.