1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
Set db = CurrentDb
'création d'un nouveau fichier access
Set dbBackup = DBEngine.CreateDatabase(txt_path.Value, dbLangGeneral, False)
dbBackup.Close
unit = 100 / db.TableDefs.Count
'Transfert de toutes les tables
DoCmd.TransferDatabase acExport, "Microsoft Access", txt_path.Value, acTable, "TBL_SITE", "TBL_SITE"
DoCmd.TransferDatabase acExport, "Microsoft Access", txt_path.Value, acTable, "TBL_VALIDATEUR", "TBL_VALIDATEUR"
DoCmd.TransferDatabase acExport, "Microsoft Access", txt_path.Value, acTable, "TBL_GRILLE", "TBL_GRILLE"
DoCmd.TransferDatabase acExport, "Microsoft Access", txt_path.Value, acTable, "TBL_POSTE", "TBL_POSTE"
DoCmd.TransferDatabase acExport, "Microsoft Access", txt_path.Value, acTable, "TBL_EQUIPEMENT", "TBL_EQUIPEMENT"
DoCmd.TransferDatabase acExport, "Microsoft Access", txt_path.Value, acTable, "TBL_EQUIP_GRILLE", "TBL_EQUIP_GRILLE"
'Récupération des relations dans une table temporaire
sqlString = "Create table temp (relationName varchar(30),tableName varchar(30),relForeignTable varchar(30),relAttributes varchar (30))"
DoCmd.RunSQL sqlString
For Each rel In CurrentDb.Relations
sqlString = "Insert into temp values ('" & rel.Name & "', '" & rel.Table & "', '" & _
rel.ForeignTable & "','" & rel.Attributes & "')"
DoCmd.SetWarnings (False)
DoCmd.RunSQL sqlString
DoCmd.SetWarnings (True)
' CurrentDb.Relations.Delete rel.Name
Next rel
'Création des relations dans la copie
Set dbBackup = DBEngine.OpenDatabase(txt_path.Value, dbLangGeneral, False)
Set db = Application.CurrentDb
sqlString = "Select * from temp"
Set rs = db.OpenRecordset(sqlString)
If Not rs.EOF Then
rs.MoveFirst
While Not rs.EOF
Set rel = dbBackup.CreateRelation(rs.Fields("relationName"), rs.Fields("tableName"), rs.Fields("relForeignTable"), rs.Fields("relAttributes"))
dbBackup.Relations.Append rel
rs.MoveNext
Wend
End If
dbBackup.Close
progressBar.Value = 100
MsgBox ("Export terminé! ") |
Partager