This article was previously published under Q110588
This article has been archived. It is offered "as is" and will no longer be updated.
A physical table in a database has records (rows) and fields (columns). Asingle record contains a single row of field values.
To copy a record in one table to another table, you need to copy all thefields in the source record to the corresponding fields in the destinationrecord. You can do this by using the Value property of the Fieldscollection, or by using an SQL statement.
How to Copy a Record Using SQL
You can use the SQL Insert Into statement to copy specified records fromone table into another:
INSERT INTO ToTableName SELECT * FROM FromTableName
You can also add a WHERE clause at the end to add any selected records:
INSERT INTO ToTableName SELECT FromTableName.* FROM FromTableName WHERE Key = 'Key'
How to Use SQL Statements in Visual Basic
Here's an example showing how to use the SQL statements in Visual Basiccode:
Dim db As database, ds As dynaset Set db = OpenDatabase("C:\VB3\FOXTEST", False, False, "foxpro 2.5;") db.Execute "INSERT INTO ToTableName SELECT FromTableName.* FROM FromTableName"
How to Copy a Record Using the Fields Collection and Value Property
The following loop copies all the fields in the current record in table 1to the corresponding fields in the current record in table 2:
Dim MyDB As Database, Tbl1 As Table, Tbl2 As Table Set MyDB = OpenDatabase("BIBLIO.MDB") ' Open Database. Set Tbl1 = MyDB.OpenTable("Publishers") ' Open Table. Set Tbl2 = ... For i = 0 to Tbl1.Fields.Count - 1 Tbl2(Tbl1.Fields(i).Name).Value = Tbl1.Fields(i).Value Next
The above loop assumes that the fields in table 2 are identical to thosein table 1.