?
Solved

Copy record from one table to another

Posted on 2000-02-16
8
Medium Priority
?
1,307 Views
Last Modified: 2008-07-03
Hi,

It has been a long time ago, I have seen a command in Ms Access
that able to copy 1 row of data and paste that entire row to another table. I wonder how to do that, instead to use something like this :

pRecordSet_1("field1") = pRecordSet_2("field1")
pRecordSet_1("field2") = pRecordSet_2("field2")
pRecordSet_1("field3") = pRecordSet_2("field3")

It not flexible to program that way, because each timethe field name change, I have to modify the program.

Thank a lot

Add comment 1  on 23 feb 2000 :

The 2 tables will have differents numbers of fields and we don't have to know those fields name.
So that the reason I need a command to able me copy record by record and paste to another table.

0
Comment
Question by:woaini
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 10

Expert Comment

by:paasky
ID: 2528440
Hi woaini,

This can be also done with a query. Here's an example how to copy a specific record from table1 to table2:

INSERT INTO Table2 ( ID, fldTable2 )
SELECT Table1.ID, Table1.fldTable1
FROM Table1
WHERE Table1.ID=[Enter ID you want to copy: ];

Regards,
Paasky
0
 
LVL 4

Expert Comment

by:wesleystewart
ID: 2528637
paasky's suggestion is by far the best, but if you have to do it one record at a time, you can just refer to the fields within each table by their index:

....
pRecordSet_1(0) = pRecordSet_2(0)
pRecordSet_1(1) = pRecordSet_2(1)
pRecordSet_1(2) = pRecordSet_2(2)
....

and so on.  Then it won't matter is the fields change names, as long as the fields are in the same order in each table.

Wes

 
0
 
LVL 4

Expert Comment

by:srauda
ID: 2529141
Try this:

INSERT INTO Table1
SELECT Table2.*
FROM Table2;

No field names involved here either.
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 10

Expert Comment

by:paasky
ID: 2530010
srauda,

yes, that would do the job well if the two tables are identical and field names in same order.
0
 

Author Comment

by:woaini
ID: 2552619
Edited text of question.
0
 
LVL 10

Accepted Solution

by:
paasky earned 200 total points
ID: 2553271
Here's a function which copies one record to another table. This is actually what wesleysteward already suggested but I wanted to make a complete code how to use it.

Public Function CopyRecord(SourceTable, TargetTable, StrCriteria) As Boolean
Dim rst1 As Recordset
Dim rst2 As Recordset
Dim iFieldCount As Byte
Dim i As Byte

    Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM " & SourceTable & " " & StrCriteria)
    Set rst2 = CurrentDb.OpenRecordset(TargetTable)
   
    If rst1.BOF And rst1.EOF Then
        ' No Data to copy
        Set rst1 = Nothing
        Set rst2 = Nothing
        CopyRecord = False
        Exit Function
    End If
   
    ' fieldcount is always the number of fields of that table which has less fields
    iFieldCount = IIf(Irst1.Fields.Count < rst2.Fields.Count, rst1.Fields.Count - 1, rst2.Fields.Count - 1)
   
    rst2.AddNew
    For i = 0 To iFieldCount
       
        ' Copy field data only if the data type is same
        If rst1.Fields(i).Type = rst2.Fields(i).Type Then
            rst2.Fields(i).Value = rst1.Fields(i).Value
        End If
       
    Next
    rst2.Update
   
    Set rst1 = Nothing
    Set rst2 = Nothing

End Function

Usage:
CopyRecord ("table1","table2","FieldX=3")

You're looking something like this?

Paasky
0
 

Author Comment

by:woaini
ID: 2562050
Thank a lot Paasky !
0
 
LVL 10

Expert Comment

by:paasky
ID: 2562327
woaini, glad we could help you.

wesleystewart, I posted a question for you because I used your idea for solving woaini's problem and want to share the points with you.

Regards,
Paasky
0

Featured Post

What Is Blockchain Technology?

Blockchain is a technology that underpins the success of Bitcoin and other digital currencies, but it has uses far beyond finance. Learn how blockchain works and why it is proving disruptive to other areas of IT.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Traditionally, the method to display pictures in Access forms and reports is to first download them from URLs to a folder, record the path in a table and then let the form or report pull the pictures from that folder. But why not let Windows retr…
If you need a simple but flexible process for maintaining an audit trail of who created, edited, or deleted data from a table, or multiple tables, and you can do all of your work from within a form, this simple Audit Log will work for you.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Suggested Courses

801 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question