Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dupliquer une table ACCESS

3 réponses
Avatar
Gérard
Bonjour,

Je cherche une solution pour cr=E9er une copie temporaire, =E0=20
l'identique, d'une table ACCESS.

Dans mon application, les modifications apport=E9es au=20
contenu le la table temporaire pouvant =EAtre annul=E9es=20
(effacement de la table temporaire)ou valid=E9es=20
(remplacement de l'original par la table temporaire).

Merci d'avance =E0 celui ou celle qui me mettra sur la voie.

Cordialement

G=E9rard

3 réponses

Avatar
Guy DETIENNE
Salut ;O)

Tu peux créer une nouvelle table à partir d'une autre via une requête SQL de
type action:

SELECT MaTableSource.* INTO MaTableDestination
FROM MaTableSource;


La table MaTableDestination sera donc à l'identique que la table
MaTableSource.

Guy

"Gérard" a écrit dans le message de
news:23f9401c45f76$e7531d20$
Bonjour,

Je cherche une solution pour créer une copie temporaire, à
l'identique, d'une table ACCESS.

Dans mon application, les modifications apportées au
contenu le la table temporaire pouvant être annulées
(effacement de la table temporaire)ou validées
(remplacement de l'original par la table temporaire).

Merci d'avance à celui ou celle qui me mettra sur la voie.

Cordialement

Gérard
Avatar
Eric
Bonjour Guy,

En terme de données, oui ca sera la même mais pas en terme de structure
car on ne récupèrera pas les contraintes (PK, Unique, Not Null, ...)

Sous Access,(en VBA), pour obtenir la copie conforme,
la commande serait :
DoCmd.CopyObject , "TableCopiée", acTable, "LaTable"

mais je ne sais pas comment la lancer depuis un programme VB6
peut-etre en créant un objet Access ?

Je passe la main aux spécialistes

A+
Eric

"Guy DETIENNE" écrivait

Salut ;O)

Tu peux créer une nouvelle table à partir d'une autre via une requête
SQL de type action:

SELECT MaTableSource.* INTO MaTableDestination
FROM MaTableSource;


La table MaTableDestination sera donc à l'identique que la table
MaTableSource.

Guy

"Gérard"
Bonjour,

Je cherche une solution pour créer une copie temporaire, à
l'identique, d'une table ACCESS.

Dans mon application, les modifications apportées au
contenu le la table temporaire pouvant être annulées
(effacement de la table temporaire)ou validées
(remplacement de l'original par la table temporaire).

Merci d'avance à celui ou celle qui me mettra sur la voie.

Cordialement

Gérard





Avatar
Alfred
"Gérard" a écrit dans le message de
news:23f9401c45f76$e7531d20$
Bonjour,

Je cherche une solution pour créer une copie temporaire, à
l'identique, d'une table ACCESS.

Dans mon application, les modifications apportées au
contenu le la table temporaire pouvant être annulées
(effacement de la table temporaire)ou validées
(remplacement de l'original par la table temporaire).

Merci d'avance à celui ou celle qui me mettra sur la voie.

Cordialement

Gérard

Bonjour,

pour copier la base:
soit dbname le nom original et dbnamec le nom de la base copiée:
CopyFile dbName, dbnamec

'fonction copyFile à simplifier si nécessaire: il y a également affichage
d'une progress bar

Function CopyFile(Src As String, Dst As String) As Single
'The file is calculated and then copied to the destination path
'while advancing the progress bar at the same time.
Dim Response As Integer
Static Buf As String
Dim BTest, FSize As Long 'declare the needed variables
Dim Chunk As Integer
Dim F1, F2 As Byte

Const BUFSIZE = 1024 'set the buffer size

If Len(Dir(Dst)) Then 'check to see if destination file already exists
Response = MsgBox(Dst + Chr(10) + Chr(10) + "Le Fichier existe déjà
." _
& vbCrLf & "Voulez-vous le remplacer?", vbYesNo + vbQuestion, "")
'prompt the user with a message box
If Response = vbNo Then 'if the "No" button was clicked
Exit Function 'exit the procedure
Else 'otherwise
Kill Dst 'delete the already found file, and carryon with the
code
End If
End If

On Error GoTo FileCopyError 'incase of error goto this label
F1 = FreeFile 'returns file number available
Open Src For Binary As F1 'open the source file
F2 = FreeFile 'returns file number available
Open Dst For Binary Access Write As F2 'open the destination file

FSize = LOF(F1)
BTest = FSize ' - LOF(F2)
pBar.Visible = True
Do
If BTest < BUFSIZE Then
Chunk = BTest
Else
Chunk = BUFSIZE
End If

Buf = String(Chunk, " ") 'nettoyage buffer
Get F1, , Buf
Put F2, , Buf
BTest = FSize - LOF(F2) 'ce qu'il reste à copier

'advance the progress bar as the file is copied
pBar.value = (100 - Int(100 * BTest / FSize))
Loop Until BTest = 0
Close F1 'closes the source file
Close F2 'closes the destination file
CopyFile = FSize
pBar.value = 0 'returns the progress bar to zero
pBar.Visible = False
Exit Function 'exit the procedure

FileCopyError: 'file copy error label
MsgBox "Erreur de Copie!, Veuillez Recommencer...", _
vbCritical, "M" 'display message box with error
Close F1 'closes the source file
Close F2 'closes the destination file
If Dir(Dst) <> "" Then Kill Dst
MsgBox "Erreur M5 " & Err.Number & vbCrLf & Err.Description, vbCritical
+ vbOKOnly, ""

End Function

l'objet FSO offre également une méthode CopyFile

Alfred