Je suis sur une base Access 2000 et je veux faire un copie des données d'une
table vers une autre base non ouverte, est-ce possible?
Si je passe chaque enrg. ca fonctionne, mais est-ce que je peux le faire
avec un INSERT INTO, et comment.
Voici mon code:
'Ouverture des bases de données
Set Wk = DBEngine.Workspaces(0)
Set db = CurrentDb()
Set Db1 = Wk.OpenDatabase(V_fich_nouveau)
'Ouverture des tables.
Set rs = db.OpenRecordset("regie_rapport", dbOpenTable) 'actuelle
Set Rs1 = Db1.OpenRecordset("regie_rapport", dbOpenTable) 'nouvelle
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric
Bonjour Clément,
Si tu veux insérer dans une table se trouvant dans une autre bd (sans avoir à l'ouvrir) en passant par Insert Into, la commande SQL doit être de la forme:
strSQL = "Insert into LaTableDestination In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from LaTableOrigine;"
sous réserve que la table de destination ait la même structure.
Ce qui donnerait:
Sub zz() Dim strSQL As String Dim strChemin As String Dim strNomBase As String strChemin = CurrentProject.Path ' adapter le chemin If Right(strChemin, 1) <> "" Then strChemin = strChemin & "" strNomBase = "NomBaseDeReception.mdb" ' à adapter strSQL = "Insert into [regie_rapport] In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from [regie_rapport];" CurrentDb.Execute strSQL End Sub
Je suis sur une base Access 2000 et je veux faire un copie des données d'une table vers une autre base non ouverte, est-ce possible?
Si je passe chaque enrg. ca fonctionne, mais est-ce que je peux le faire avec un INSERT INTO, et comment.
Voici mon code:
'Ouverture des bases de données Set Wk = DBEngine.Workspaces(0) Set db = CurrentDb() Set Db1 = Wk.OpenDatabase(V_fich_nouveau)
'Ouverture des tables. Set rs = db.OpenRecordset("regie_rapport", dbOpenTable) 'actuelle Set Rs1 = Db1.OpenRecordset("regie_rapport", dbOpenTable) 'nouvelle
'Ici est-ce possible? strQuery = "INSERT INTO db1.projet SELECT * FROM db.projet" Db1.Execute (strQuery)
Merci a l'avance
Clement Quebec Canada
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Clément,
Si tu veux insérer dans une table se trouvant dans une autre bd (sans
avoir à l'ouvrir) en passant par Insert Into, la commande SQL doit être
de la forme:
strSQL = "Insert into LaTableDestination In " & Chr(34) _
& strChemin & strNomBase & Chr(34) _
& " select * from LaTableOrigine;"
sous réserve que la table de destination ait la même structure.
Ce qui donnerait:
Sub zz()
Dim strSQL As String
Dim strChemin As String
Dim strNomBase As String
strChemin = CurrentProject.Path ' adapter le chemin
If Right(strChemin, 1) <> "" Then strChemin = strChemin & ""
strNomBase = "NomBaseDeReception.mdb" ' à adapter
strSQL = "Insert into [regie_rapport] In " & Chr(34) _
& strChemin & strNomBase & Chr(34) _
& " select * from [regie_rapport];"
CurrentDb.Execute strSQL
End Sub
Je suis sur une base Access 2000 et je veux faire un copie des données d'une
table vers une autre base non ouverte, est-ce possible?
Si je passe chaque enrg. ca fonctionne, mais est-ce que je peux le faire
avec un INSERT INTO, et comment.
Voici mon code:
'Ouverture des bases de données
Set Wk = DBEngine.Workspaces(0)
Set db = CurrentDb()
Set Db1 = Wk.OpenDatabase(V_fich_nouveau)
'Ouverture des tables.
Set rs = db.OpenRecordset("regie_rapport", dbOpenTable) 'actuelle
Set Rs1 = Db1.OpenRecordset("regie_rapport", dbOpenTable) 'nouvelle
Si tu veux insérer dans une table se trouvant dans une autre bd (sans avoir à l'ouvrir) en passant par Insert Into, la commande SQL doit être de la forme:
strSQL = "Insert into LaTableDestination In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from LaTableOrigine;"
sous réserve que la table de destination ait la même structure.
Ce qui donnerait:
Sub zz() Dim strSQL As String Dim strChemin As String Dim strNomBase As String strChemin = CurrentProject.Path ' adapter le chemin If Right(strChemin, 1) <> "" Then strChemin = strChemin & "" strNomBase = "NomBaseDeReception.mdb" ' à adapter strSQL = "Insert into [regie_rapport] In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from [regie_rapport];" CurrentDb.Execute strSQL End Sub
Je suis sur une base Access 2000 et je veux faire un copie des données d'une table vers une autre base non ouverte, est-ce possible?
Si je passe chaque enrg. ca fonctionne, mais est-ce que je peux le faire avec un INSERT INTO, et comment.
Voici mon code:
'Ouverture des bases de données Set Wk = DBEngine.Workspaces(0) Set db = CurrentDb() Set Db1 = Wk.OpenDatabase(V_fich_nouveau)
'Ouverture des tables. Set rs = db.OpenRecordset("regie_rapport", dbOpenTable) 'actuelle Set Rs1 = Db1.OpenRecordset("regie_rapport", dbOpenTable) 'nouvelle
'Ici est-ce possible? strQuery = "INSERT INTO db1.projet SELECT * FROM db.projet" Db1.Execute (strQuery)
Merci a l'avance
Clement Quebec Canada
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Clément
Merci Eric, je vais essayer avec ton code, par contre j'ai réussi avec la commande transferDatabase comme code plus pas, par contre ca fonctionne seulement si les autres tables ne sont par reliées entre elles, car il faut les effacer avec cette commande, ta méthode sera meilleure, car je veux garder les relations.
********* 'Ouverture des variables Dim V_fich_vide Dim V_fich_nouveau Dim Wk As Workspace, db As Database, Db1 As Database Dim rs As Recordset, Rs1 As Recordset, Rs2 As Recordset, Rs3 As Recordset
'Créer la table V_fich_nouveau en fonction du nouveau projet FileCopy V_fich_vide, V_fich_nouveau
'Ouverture des bases de données Set Wk = DBEngine.Workspaces(0) Set db = CurrentDb() Set Db1 = Wk.OpenDatabase(V_fich_nouveau)
For Each tbl In db.TableDefs If tbl.Name Like "Msys*" Then Else DoCmd.TransferDatabase acExport, "Microsoft Access", V_fich_nouveau, acTable, tbl.Name, tbl.Name, False End If Next
Db1.Close db.Close
*********
Bonjour Clément,
Si tu veux insérer dans une table se trouvant dans une autre bd (sans avoir à l'ouvrir) en passant par Insert Into, la commande SQL doit être de la forme:
strSQL = "Insert into LaTableDestination In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from LaTableOrigine;"
sous réserve que la table de destination ait la même structure.
Ce qui donnerait:
Sub zz() Dim strSQL As String Dim strChemin As String Dim strNomBase As String strChemin = CurrentProject.Path ' adapter le chemin If Right(strChemin, 1) <> "" Then strChemin = strChemin & "" strNomBase = "NomBaseDeReception.mdb" ' à adapter strSQL = "Insert into [regie_rapport] In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from [regie_rapport];" CurrentDb.Execute strSQL End Sub
Merci Eric, je vais essayer avec ton code, par contre j'ai réussi avec la
commande transferDatabase comme code plus pas, par contre ca fonctionne
seulement si les autres tables ne sont par reliées entre elles, car il faut
les effacer avec cette commande, ta méthode sera meilleure, car je veux
garder les relations.
*********
'Ouverture des variables
Dim V_fich_vide
Dim V_fich_nouveau
Dim Wk As Workspace, db As Database, Db1 As Database
Dim rs As Recordset, Rs1 As Recordset, Rs2 As Recordset, Rs3 As Recordset
'Créer la table V_fich_nouveau en fonction du nouveau projet
FileCopy V_fich_vide, V_fich_nouveau
'Ouverture des bases de données
Set Wk = DBEngine.Workspaces(0)
Set db = CurrentDb()
Set Db1 = Wk.OpenDatabase(V_fich_nouveau)
For Each tbl In db.TableDefs
If tbl.Name Like "Msys*" Then
Else
DoCmd.TransferDatabase acExport, "Microsoft Access",
V_fich_nouveau, acTable, tbl.Name, tbl.Name, False
End If
Next
Db1.Close
db.Close
*********
Bonjour Clément,
Si tu veux insérer dans une table se trouvant dans une autre bd (sans
avoir à l'ouvrir) en passant par Insert Into, la commande SQL doit être
de la forme:
strSQL = "Insert into LaTableDestination In " & Chr(34) _
& strChemin & strNomBase & Chr(34) _
& " select * from LaTableOrigine;"
sous réserve que la table de destination ait la même structure.
Ce qui donnerait:
Sub zz()
Dim strSQL As String
Dim strChemin As String
Dim strNomBase As String
strChemin = CurrentProject.Path ' adapter le chemin
If Right(strChemin, 1) <> "" Then strChemin = strChemin & ""
strNomBase = "NomBaseDeReception.mdb" ' à adapter
strSQL = "Insert into [regie_rapport] In " & Chr(34) _
& strChemin & strNomBase & Chr(34) _
& " select * from [regie_rapport];"
CurrentDb.Execute strSQL
End Sub
Merci Eric, je vais essayer avec ton code, par contre j'ai réussi avec la commande transferDatabase comme code plus pas, par contre ca fonctionne seulement si les autres tables ne sont par reliées entre elles, car il faut les effacer avec cette commande, ta méthode sera meilleure, car je veux garder les relations.
********* 'Ouverture des variables Dim V_fich_vide Dim V_fich_nouveau Dim Wk As Workspace, db As Database, Db1 As Database Dim rs As Recordset, Rs1 As Recordset, Rs2 As Recordset, Rs3 As Recordset
'Créer la table V_fich_nouveau en fonction du nouveau projet FileCopy V_fich_vide, V_fich_nouveau
'Ouverture des bases de données Set Wk = DBEngine.Workspaces(0) Set db = CurrentDb() Set Db1 = Wk.OpenDatabase(V_fich_nouveau)
For Each tbl In db.TableDefs If tbl.Name Like "Msys*" Then Else DoCmd.TransferDatabase acExport, "Microsoft Access", V_fich_nouveau, acTable, tbl.Name, tbl.Name, False End If Next
Db1.Close db.Close
*********
Bonjour Clément,
Si tu veux insérer dans une table se trouvant dans une autre bd (sans avoir à l'ouvrir) en passant par Insert Into, la commande SQL doit être de la forme:
strSQL = "Insert into LaTableDestination In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from LaTableOrigine;"
sous réserve que la table de destination ait la même structure.
Ce qui donnerait:
Sub zz() Dim strSQL As String Dim strChemin As String Dim strNomBase As String strChemin = CurrentProject.Path ' adapter le chemin If Right(strChemin, 1) <> "" Then strChemin = strChemin & "" strNomBase = "NomBaseDeReception.mdb" ' à adapter strSQL = "Insert into [regie_rapport] In " & Chr(34) _ & strChemin & strNomBase & Chr(34) _ & " select * from [regie_rapport];" CurrentDb.Execute strSQL End Sub
Clément
Merci Eric, c'était en plein ca !!!!!
J'ai mis mon code complet si ca peut en aider d'autres, c'est un module pour faire l'archivage de la base de données avec la date et l'heure.
'********************************************************************* '* Programme pour dossier Suivi_de_projet '********************************************************************* '* '* Programme.....................: basCopieLocal '* Auteur........................: Clément Dostie '* Date de creation..............: 2006.07.07 '* Date de derniere modification : 2006.11.13 '* Remarque......................: Pour faire une copie sur le '* lecteur local. '*********************************************************************
Option Compare Database
Public Function CopieLocal()
If MsgBox("Voulez-vous vraiment faire la création du fichier sur votre disque dur ? - Cette procédure est assez longue", vbYesNo) = vbYes Then 'Réponse oui Else 'Réponse non Exit Function End If
DoCmd.Hourglass True
'Vérification du nom du reseau Dim Db2 As Database Set Db2 = CurrentDb() Dim V_reseau_dir As String Dim V_reseau_table As String V_reseau_table = Db2.Name V_reseau_dir = Left(V_reseau_table, (Len(V_reseau_table) - 18)) Db2.Close Set Db2 = Nothing
'Ouverture des variables Dim V_fich_vide Dim V_fich_nouveau Dim Wk As Workspace, db As Database, Db1 As Database Dim rs As Recordset, Rs1 As Recordset, Rs2 As Recordset, Rs3 As Recordset
'Créer la table V_fich_nouveau en fonction du nouveau projet FileCopy V_fich_vide, V_fich_nouveau
'Ouverture des bases de données Set Wk = DBEngine.Workspaces(0) Set db = CurrentDb()
For Each tbl In db.TableDefs If tbl.Name Like "Msys*" Or tbl.Name Like "dbo*" Then Else strQuery = "INSERT INTO [" + tbl.Name + "] IN " + Chr(34) + V_fich_nouveau + Chr(34) + " SELECT * " & "FROM [" & tbl.Name + "]" db.Execute (strQuery) 'DoCmd.TransferDatabase acExport, "Microsoft Access", V_fich_nouveau, acTable, tbl.Name, tbl.Name, False End If Next
db.Close Set db = Nothing
'Copier la table Suivi_inv_xxxx sur le V: On Error Resume Next MkDir "C:SDP" MkDir "C:SDPSDP" + Str(Forms![Menu général]!no_proj) ' MkDir "V:SDP" ' MkDir "V:SDPSDP" + str(Forms![Menu général]!no_proj)
Dim V_fich_local As String V_fich_local = "SDPSDP" + Str(Forms![Menu général]!no_proj) + "" + Str(Forms![Menu général]!no_proj) + "_" + Format$(Now(), "dd mmm yyyy h mm ss") + ".mde"
MsgBox "Le fichier a été créé sur " + "C:" + V_fich_local, vbInformation, " *** INFORMATION *** " ' MsgBox "Le fichier a été créé sur " + "V:" + V_fich_local, vbInformation, " *** INFORMATION *** "
DoCmd.Hourglass False
End Function
Merci Eric, c'était en plein ca !!!!!
J'ai mis mon code complet si ca peut en aider d'autres, c'est un module pour
faire l'archivage de la base de données avec la date et l'heure.
'*********************************************************************
'* Programme pour dossier Suivi_de_projet
'*********************************************************************
'*
'* Programme.....................: basCopieLocal
'* Auteur........................: Clément Dostie
'* Date de creation..............: 2006.07.07
'* Date de derniere modification : 2006.11.13
'* Remarque......................: Pour faire une copie sur le
'* lecteur local.
'*********************************************************************
Option Compare Database
Public Function CopieLocal()
If MsgBox("Voulez-vous vraiment faire la création du fichier sur votre
disque dur ? - Cette procédure est assez longue", vbYesNo) = vbYes Then
'Réponse oui
Else 'Réponse non
Exit Function
End If
DoCmd.Hourglass True
'Vérification du nom du reseau
Dim Db2 As Database
Set Db2 = CurrentDb()
Dim V_reseau_dir As String
Dim V_reseau_table As String
V_reseau_table = Db2.Name
V_reseau_dir = Left(V_reseau_table, (Len(V_reseau_table) - 18))
Db2.Close
Set Db2 = Nothing
'Ouverture des variables
Dim V_fich_vide
Dim V_fich_nouveau
Dim Wk As Workspace, db As Database, Db1 As Database
Dim rs As Recordset, Rs1 As Recordset, Rs2 As Recordset, Rs3 As Recordset
'Créer la table V_fich_nouveau en fonction du nouveau projet
FileCopy V_fich_vide, V_fich_nouveau
'Ouverture des bases de données
Set Wk = DBEngine.Workspaces(0)
Set db = CurrentDb()
For Each tbl In db.TableDefs
If tbl.Name Like "Msys*" Or tbl.Name Like "dbo*" Then
Else
strQuery = "INSERT INTO [" + tbl.Name + "] IN " + Chr(34) +
V_fich_nouveau + Chr(34) + " SELECT * " & "FROM [" & tbl.Name + "]"
db.Execute (strQuery)
'DoCmd.TransferDatabase acExport, "Microsoft Access",
V_fich_nouveau, acTable, tbl.Name, tbl.Name, False
End If
Next
db.Close
Set db = Nothing
'Copier la table Suivi_inv_xxxx sur le V:
On Error Resume Next
MkDir "C:SDP"
MkDir "C:SDPSDP" + Str(Forms![Menu général]!no_proj)
' MkDir "V:SDP"
' MkDir "V:SDPSDP" + str(Forms![Menu général]!no_proj)
Dim V_fich_local As String
V_fich_local = "SDPSDP" + Str(Forms![Menu général]!no_proj) + "" +
Str(Forms![Menu général]!no_proj) + "_" + Format$(Now(), "dd mmm yyyy h mm
ss") + ".mde"
MsgBox "Le fichier a été créé sur " + "C:" + V_fich_local,
vbInformation, " *** INFORMATION *** "
' MsgBox "Le fichier a été créé sur " + "V:" + V_fich_local,
vbInformation, " *** INFORMATION *** "
J'ai mis mon code complet si ca peut en aider d'autres, c'est un module pour faire l'archivage de la base de données avec la date et l'heure.
'********************************************************************* '* Programme pour dossier Suivi_de_projet '********************************************************************* '* '* Programme.....................: basCopieLocal '* Auteur........................: Clément Dostie '* Date de creation..............: 2006.07.07 '* Date de derniere modification : 2006.11.13 '* Remarque......................: Pour faire une copie sur le '* lecteur local. '*********************************************************************
Option Compare Database
Public Function CopieLocal()
If MsgBox("Voulez-vous vraiment faire la création du fichier sur votre disque dur ? - Cette procédure est assez longue", vbYesNo) = vbYes Then 'Réponse oui Else 'Réponse non Exit Function End If
DoCmd.Hourglass True
'Vérification du nom du reseau Dim Db2 As Database Set Db2 = CurrentDb() Dim V_reseau_dir As String Dim V_reseau_table As String V_reseau_table = Db2.Name V_reseau_dir = Left(V_reseau_table, (Len(V_reseau_table) - 18)) Db2.Close Set Db2 = Nothing
'Ouverture des variables Dim V_fich_vide Dim V_fich_nouveau Dim Wk As Workspace, db As Database, Db1 As Database Dim rs As Recordset, Rs1 As Recordset, Rs2 As Recordset, Rs3 As Recordset
'Créer la table V_fich_nouveau en fonction du nouveau projet FileCopy V_fich_vide, V_fich_nouveau
'Ouverture des bases de données Set Wk = DBEngine.Workspaces(0) Set db = CurrentDb()
For Each tbl In db.TableDefs If tbl.Name Like "Msys*" Or tbl.Name Like "dbo*" Then Else strQuery = "INSERT INTO [" + tbl.Name + "] IN " + Chr(34) + V_fich_nouveau + Chr(34) + " SELECT * " & "FROM [" & tbl.Name + "]" db.Execute (strQuery) 'DoCmd.TransferDatabase acExport, "Microsoft Access", V_fich_nouveau, acTable, tbl.Name, tbl.Name, False End If Next
db.Close Set db = Nothing
'Copier la table Suivi_inv_xxxx sur le V: On Error Resume Next MkDir "C:SDP" MkDir "C:SDPSDP" + Str(Forms![Menu général]!no_proj) ' MkDir "V:SDP" ' MkDir "V:SDPSDP" + str(Forms![Menu général]!no_proj)
Dim V_fich_local As String V_fich_local = "SDPSDP" + Str(Forms![Menu général]!no_proj) + "" + Str(Forms![Menu général]!no_proj) + "_" + Format$(Now(), "dd mmm yyyy h mm ss") + ".mde"
MsgBox "Le fichier a été créé sur " + "C:" + V_fich_local, vbInformation, " *** INFORMATION *** " ' MsgBox "Le fichier a été créé sur " + "V:" + V_fich_local, vbInformation, " *** INFORMATION *** "
DoCmd.Hourglass False
End Function
Eric
Bonjour Clément,
Content d'avoir pu donner un p'tit coup de pouce à un cousin bien éloigné ;-)
Bonne programmation.
Merci Eric, c'était en plein ca !!!!! ...
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Clément,
Content d'avoir pu donner un p'tit coup de pouce à un cousin bien
éloigné ;-)
Bonne programmation.
Merci Eric, c'était en plein ca !!!!!
...
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr