Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Copy record from one table to another

Posted on 2000-02-16
8
Medium Priority
?
1,315 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
NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

 
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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
Instead of error trapping or hard-coding for non-updateable fields when using QODBC, let VBA automatically disable them when forms open. This way, users can view but not change the data. Part 1 explained how to use schema tables to do this. Part 2 h…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

610 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