Je m'arrache les cheveux sur une appli VB 6 (sous XP et=20
Access 2000), pour copier une base Access lock=E9e par=20
l'application. Est-ce impossible par programmation (alors=20
que =E7a l'est depuis l'Explorateur Windows)? Pour le=20
moment, je fais une copie de la DB record par record,=20
mais c'est tr=E8s long. Faut-il abandonner Access ;-) ou=20
une solution existe-t-elle?
Merci d'avance pour votre aide!
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
Ledev
Hélène wrote:
Bonjour à tous,
Bonjour a toi,
Je m'arrache les cheveux sur une appli VB 6 (sous XP et Access 2000), pour copier une base Access lockée par l'application. Est-ce impossible par programmation (alors que ça l'est depuis l'Explorateur Windows)? Pour le moment, je fais une copie de la DB record par record, mais c'est très long. Faut-il abandonner Access ;-) ou une solution existe-t-elle? Merci d'avance pour votre aide!
Si je comprend bien, pour faire une copie du même style qu'avec l'explorateur, par programmation vous recréer les tables et réenregistrer les enregistrements un par un!!! Ceci est loin d'être la solution: -un travail monstre qu'y peut être remplacer par, et vous allez pas me croire, une seul ligne de code ;-) -Et en plus, la base ne serra pas recopier a l'exactitude(même si vous aurrez les mêmes enregistrements et tous, les relations faites dans access par exemple ne seront plus là) -Puis il faut bien prendre en comptes TOUTES les propriété de chaque champs(pas juste le type, mais la taille, et toutes les propriété que vous trouvée dans Access, en bas dans la fenêtre d'édition). -Et puis, c'est beaucoup plus rapide à l'execution ;-)
Exemple de code: filecopy "c:mabase.mdb","d:sauveguardemabase.mdb"
Voilà, a+
Hélène
Hélène wrote:
Bonjour à tous,
Bonjour a toi,
Je m'arrache les cheveux sur une appli VB 6 (sous XP et
Access 2000), pour copier une base Access lockée par
l'application. Est-ce impossible par programmation (alors
que ça l'est depuis l'Explorateur Windows)? Pour le
moment, je fais une copie de la DB record par record,
mais c'est très long. Faut-il abandonner Access ;-) ou
une solution existe-t-elle?
Merci d'avance pour votre aide!
Si je comprend bien, pour faire une copie du même style qu'avec
l'explorateur, par programmation vous recréer les tables et réenregistrer
les enregistrements un par un!!!
Ceci est loin d'être la solution:
-un travail monstre qu'y peut être remplacer par, et vous allez pas me
croire, une seul ligne de code ;-)
-Et en plus, la base ne serra pas recopier a l'exactitude(même si vous
aurrez les mêmes enregistrements et tous, les relations faites dans access
par exemple ne seront plus là)
-Puis il faut bien prendre en comptes TOUTES les propriété de chaque
champs(pas juste le type, mais la taille, et toutes les propriété que vous
trouvée dans Access, en bas dans la fenêtre d'édition).
-Et puis, c'est beaucoup plus rapide à l'execution ;-)
Exemple de code:
filecopy "c:mabase.mdb","d:sauveguardemabase.mdb"
Je m'arrache les cheveux sur une appli VB 6 (sous XP et Access 2000), pour copier une base Access lockée par l'application. Est-ce impossible par programmation (alors que ça l'est depuis l'Explorateur Windows)? Pour le moment, je fais une copie de la DB record par record, mais c'est très long. Faut-il abandonner Access ;-) ou une solution existe-t-elle? Merci d'avance pour votre aide!
Si je comprend bien, pour faire une copie du même style qu'avec l'explorateur, par programmation vous recréer les tables et réenregistrer les enregistrements un par un!!! Ceci est loin d'être la solution: -un travail monstre qu'y peut être remplacer par, et vous allez pas me croire, une seul ligne de code ;-) -Et en plus, la base ne serra pas recopier a l'exactitude(même si vous aurrez les mêmes enregistrements et tous, les relations faites dans access par exemple ne seront plus là) -Puis il faut bien prendre en comptes TOUTES les propriété de chaque champs(pas juste le type, mais la taille, et toutes les propriété que vous trouvée dans Access, en bas dans la fenêtre d'édition). -Et puis, c'est beaucoup plus rapide à l'execution ;-)
Exemple de code: filecopy "c:mabase.mdb","d:sauveguardemabase.mdb"
Voilà, a+
Hélène
datamind
TU PEUX UTILISER CELA PAR EXEMPLE If Dir("c:bddcopy.bat") = "bddcopy.bat" Then Kill "c:bddcopy.bat" Open "c:bddcopy.bat" For Binary As #1 Put #1, , "copy c:base1.mdb d:" Close #1 Shell ("c:bddcopy.bat")
TU PEUX UTILISER CELA PAR EXEMPLE
If Dir("c:bddcopy.bat") = "bddcopy.bat" Then
Kill "c:bddcopy.bat"
Open "c:bddcopy.bat" For Binary As #1
Put #1, , "copy c:base1.mdb d:"
Close #1
Shell ("c:bddcopy.bat")
TU PEUX UTILISER CELA PAR EXEMPLE If Dir("c:bddcopy.bat") = "bddcopy.bat" Then Kill "c:bddcopy.bat" Open "c:bddcopy.bat" For Binary As #1 Put #1, , "copy c:base1.mdb d:" Close #1 Shell ("c:bddcopy.bat")
françois
J'avais le même problème pour copier et sauvegarder une base ouverte dans une de mes applis avec la base sur réseau. Avec le Copyfile de VB cela ne marche pas si la base est ouverte. En utilisant une api, pas de problème. Il faut la mettre dans un module : Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" ( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long
et dans ton code tu écris dans ta procédure :
lgFailIfExists = CLng(FailIfTargetExists) Call CopyFile("chemin de ta base+mabase.mdb","chemin de ta base+nomdecopiedetabase.mdb", lgFailIfExists)
françois
J'avais le même problème pour copier et sauvegarder une
base ouverte dans une de mes applis avec la base sur
réseau. Avec le Copyfile de VB cela ne marche pas si la
base est ouverte. En utilisant une api, pas de problème.
Il faut la mettre dans un module :
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA"
( _
ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long
et dans ton code tu écris dans ta procédure :
lgFailIfExists = CLng(FailIfTargetExists)
Call CopyFile("chemin de ta base+mabase.mdb","chemin de ta
base+nomdecopiedetabase.mdb", lgFailIfExists)
J'avais le même problème pour copier et sauvegarder une base ouverte dans une de mes applis avec la base sur réseau. Avec le Copyfile de VB cela ne marche pas si la base est ouverte. En utilisant une api, pas de problème. Il faut la mettre dans un module : Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" ( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long
et dans ton code tu écris dans ta procédure :
lgFailIfExists = CLng(FailIfTargetExists) Call CopyFile("chemin de ta base+mabase.mdb","chemin de ta base+nomdecopiedetabase.mdb", lgFailIfExists)
françois
Hélène
Merci beaucoup, François; ça marche impeccablement! Excellente journée,
Hélène
-----Message d'origine----- J'avais le même problème pour copier et sauvegarder une base ouverte dans une de mes applis avec la base sur réseau. Avec le Copyfile de VB cela ne marche pas si la base est ouverte. En utilisant une api, pas de problème. Il faut la mettre dans un module : Declare Function CopyFile Lib "kernel32"
Alias "CopyFileA"
( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long
et dans ton code tu écris dans ta procédure :
lgFailIfExists = CLng(FailIfTargetExists) Call CopyFile("chemin de ta base+mabase.mdb","chemin de
ta
base+nomdecopiedetabase.mdb", lgFailIfExists)
françois
.
Merci beaucoup, François; ça marche impeccablement!
Excellente journée,
Hélène
-----Message d'origine-----
J'avais le même problème pour copier et sauvegarder une
base ouverte dans une de mes applis avec la base sur
réseau. Avec le Copyfile de VB cela ne marche pas si la
base est ouverte. En utilisant une api, pas de problème.
Il faut la mettre dans un module :
Declare Function CopyFile Lib "kernel32"
Alias "CopyFileA"
( _
ByVal lpExistingFileName As String, _
ByVal lpNewFileName As String, _
ByVal bFailIfExists As Long) As Long
et dans ton code tu écris dans ta procédure :
lgFailIfExists = CLng(FailIfTargetExists)
Call CopyFile("chemin de ta base+mabase.mdb","chemin de
Merci beaucoup, François; ça marche impeccablement! Excellente journée,
Hélène
-----Message d'origine----- J'avais le même problème pour copier et sauvegarder une base ouverte dans une de mes applis avec la base sur réseau. Avec le Copyfile de VB cela ne marche pas si la base est ouverte. En utilisant une api, pas de problème. Il faut la mettre dans un module : Declare Function CopyFile Lib "kernel32"
Alias "CopyFileA"
( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long
et dans ton code tu écris dans ta procédure :
lgFailIfExists = CLng(FailIfTargetExists) Call CopyFile("chemin de ta base+mabase.mdb","chemin de
ta
base+nomdecopiedetabase.mdb", lgFailIfExists)
françois
.
Hélène
Merci beaucoup pour ta réponse. Malheureusement, quand la base est lockée (présence d'un .ldb), ça ne fonctionne pas; d'où ma question. En revanche, la solution proposée par François semble marcher. Encore merci et bonne journée,
Hélène
-----Message d'origine----- Hélène wrote:
Bonjour à tous,
Bonjour a toi,
Je m'arrache les cheveux sur une appli VB 6 (sous XP et Access 2000), pour copier une base Access lockée par l'application. Est-ce impossible par programmation
(alors
que ça l'est depuis l'Explorateur Windows)? Pour le moment, je fais une copie de la DB record par record, mais c'est très long. Faut-il abandonner Access ;-) ou une solution existe-t-elle? Merci d'avance pour votre aide!
Si je comprend bien, pour faire une copie du même style
qu'avec
l'explorateur, par programmation vous recréer les tables
et réenregistrer
les enregistrements un par un!!! Ceci est loin d'être la solution: -un travail monstre qu'y peut être remplacer par, et
vous allez pas me
croire, une seul ligne de code ;-) -Et en plus, la base ne serra pas recopier a
l'exactitude(même si vous
aurrez les mêmes enregistrements et tous, les relations
faites dans access
par exemple ne seront plus là) -Puis il faut bien prendre en comptes TOUTES les
propriété de chaque
champs(pas juste le type, mais la taille, et toutes les
propriété que vous
trouvée dans Access, en bas dans la fenêtre d'édition). -Et puis, c'est beaucoup plus rapide à l'execution ;-
)
Exemple de code: filecopy "c:mabase.mdb","d:sauveguardemabase.mdb"
Voilà, a+
Hélène
.
Merci beaucoup pour ta réponse.
Malheureusement, quand la base est lockée (présence
d'un .ldb), ça ne fonctionne pas; d'où ma question.
En revanche, la solution proposée par François semble
marcher.
Encore merci et bonne journée,
Hélène
-----Message d'origine-----
Hélène wrote:
Bonjour à tous,
Bonjour a toi,
Je m'arrache les cheveux sur une appli VB 6 (sous XP et
Access 2000), pour copier une base Access lockée par
l'application. Est-ce impossible par programmation
(alors
que ça l'est depuis l'Explorateur Windows)? Pour le
moment, je fais une copie de la DB record par record,
mais c'est très long. Faut-il abandonner Access ;-) ou
une solution existe-t-elle?
Merci d'avance pour votre aide!
Si je comprend bien, pour faire une copie du même style
qu'avec
l'explorateur, par programmation vous recréer les tables
et réenregistrer
les enregistrements un par un!!!
Ceci est loin d'être la solution:
-un travail monstre qu'y peut être remplacer par, et
vous allez pas me
croire, une seul ligne de code ;-)
-Et en plus, la base ne serra pas recopier a
l'exactitude(même si vous
aurrez les mêmes enregistrements et tous, les relations
faites dans access
par exemple ne seront plus là)
-Puis il faut bien prendre en comptes TOUTES les
propriété de chaque
champs(pas juste le type, mais la taille, et toutes les
propriété que vous
trouvée dans Access, en bas dans la fenêtre d'édition).
-Et puis, c'est beaucoup plus rapide à l'execution ;-
)
Exemple de code:
filecopy "c:mabase.mdb","d:sauveguardemabase.mdb"
Merci beaucoup pour ta réponse. Malheureusement, quand la base est lockée (présence d'un .ldb), ça ne fonctionne pas; d'où ma question. En revanche, la solution proposée par François semble marcher. Encore merci et bonne journée,
Hélène
-----Message d'origine----- Hélène wrote:
Bonjour à tous,
Bonjour a toi,
Je m'arrache les cheveux sur une appli VB 6 (sous XP et Access 2000), pour copier une base Access lockée par l'application. Est-ce impossible par programmation
(alors
que ça l'est depuis l'Explorateur Windows)? Pour le moment, je fais une copie de la DB record par record, mais c'est très long. Faut-il abandonner Access ;-) ou une solution existe-t-elle? Merci d'avance pour votre aide!
Si je comprend bien, pour faire une copie du même style
qu'avec
l'explorateur, par programmation vous recréer les tables
et réenregistrer
les enregistrements un par un!!! Ceci est loin d'être la solution: -un travail monstre qu'y peut être remplacer par, et
vous allez pas me
croire, une seul ligne de code ;-) -Et en plus, la base ne serra pas recopier a
l'exactitude(même si vous
aurrez les mêmes enregistrements et tous, les relations
faites dans access
par exemple ne seront plus là) -Puis il faut bien prendre en comptes TOUTES les
propriété de chaque
champs(pas juste le type, mais la taille, et toutes les
propriété que vous
trouvée dans Access, en bas dans la fenêtre d'édition). -Et puis, c'est beaucoup plus rapide à l'execution ;-
)
Exemple de code: filecopy "c:mabase.mdb","d:sauveguardemabase.mdb"