Solved

Copy table from one database to  same table in another database

Posted on 2016-09-15
9
65 Views
Last Modified: 2016-09-30
I used this part of code in Access 2010  to move records from four current tables in kind of history database that has the same four tables.
In example below that I used  it has one table I adjusted that for four tables. I repeated step 2 and 3 for every table. But got error after first table was moved it means after first step3. I must missing something after step3.


but I got error : "System resource exceeded"

Here is code.
Sub DoArchive()
On Error GoTo Err_DoArchive
  Dim ws As DAO.Workspace   'Current workspace (for transaction).
  Dim db As DAO.Database    'Inside the transaction.
  Dim bInTrans As Boolean   'Flag that transaction is active.
  Dim strSql As String      'Action query statements.
  Dim strMsg As String      'MsgBox message.

  'Step 1: Initialize database object inside a transaction.
  Set ws = DBEngine(0)
  ws.BeginTrans
  bInTrans = True
  Set db = ws(0)

  'Step 2: Execute the append.
  strSql = "INSERT INTO MyArchiveTable ( MyField, AnotherField, Field3 ) " & _
    "IN ""C:\My Documents\MyArchive.mdb"" " & _
    "SELECT SomeField, Field2, Field3 FROM MyTable WHERE (MyYesNoField = True);"
  db.Execute strSql, dbFailOnError

  'Step 3: Execute the delete.
  strSql = "DELETE FROM MyTable WHERE (MyYesNoField = True);"
  db.Execute strSql, dbFailOnError

  'Step 4: Get user confirmation to commit the change.
  strMsg = "Archive " & db.RecordsAffected & " record(s)?"
  If MsgBox(strMsg, vbOKCancel + vbQuestion, "Confirm") = vbOK Then
    ws.CommitTrans
    bInTrans = False
  End If

Exit_DoArchive:
  'Step 5: Clean up
  On Error Resume Next
  Set db = Nothing
  If bInTrans Then   'Rollback if the transaction is active.
    ws.Rollback
  End If
  Set ws = Nothing
Exit Sub

Err_DoArchive:
  MsgBox Err.Description, vbExclamation, "Archiving failed: Error " & Err.number
  Resume Exit_DoArchive
End Sub
0
Comment
Question by:Taras
  • 4
  • 3
  • 2
9 Comments
 
LVL 33

Assisted Solution

by:ste5an
ste5an earned 250 total points
ID: 41800450
How big is that table? Do you execute this right after starting Access?

The error message indicates, that you have used too many resources at that point (handles etc.).
0
 
LVL 84

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 250 total points
ID: 41800451
Do you ONLY repeat steps 2 and 3 for subsequent tables?
0
 

Author Comment

by:Taras
ID: 41800463
Yes I only repeat steps 2 and 3 for table tbl2 tbl3 and tbl4
0
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 

Author Comment

by:Taras
ID: 41800466
All database is size of 200mb and I have around 20 tables.
But I am moving only those 4 the largest one.
0
 
LVL 33

Expert Comment

by:ste5an
ID: 41800485
DBEngine requires some resources, but there is no obvious reason for that.

Is your archive at a fixed location in the file system? Then I would consider using linked tables as a test.
0
 

Author Comment

by:Taras
ID: 41805348
I solved this by putting this part of code before my first step.

     DBEngine.SetOption dbMaxLocksPerFile, 200000

How ever I go an new error:

To ad some complicity I add to each of those four Parent table its child table.
Parent and Child table are in one to many relationship. Complete referential integrity imposed. Everything goes ok up to last table.
In this fourth table (parent table) I first insert records and it went through without error then  when I tried to  insert – copy record  in child table I got error:
You cannot add or change a record because a related record is Required in table...

I am sure that related records are in parent table not sure while I am getting message that they are not.
0
 
LVL 84
ID: 41805394
Are you using the same connection and transaction for all those processes?
0
 

Author Comment

by:Taras
ID: 41805540
Yes I am using same connection and transaction.
0
 
LVL 84
ID: 41806273
Be sure that you're properly filling the Foreign Key field in the child tables with the parent record's PK id value.
0

Featured Post

Three Reasons Why Backup is Strategic

Backup is strategic to your business because your data is strategic to your business. Without backup, your business will fail. This white paper explains why it is vital for you to design and immediately execute a backup strategy to protect 100 percent of your data.

Question has a verified solution.

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

This article is a continuation or rather an extension from Cascading Combos (http://www.experts-exchange.com/A_5949.html) and builds on examples developed in detail there. It should be understandable alone, but I recommend reading the previous artic…
It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

828 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