Erreur 70 à la copie de pst - VB
Bonjour à tous
J'essaie en vain de mettre en place une copie des pst de nos collaborateurs sur un dossier du serveur de domaine. (où se situe le VB)
Je lance mon VB en tant qu'admin du domaine avec tous les droits qui vont bien sur les partages des postes clients, d'où je veux copier le pst... 8-)
J'ai la même erreur avec un CopyFile ou FileCopy du fichier pst.
Le On Error le marche pas , et l'erreur 70 semblerait venir du fait qu'Outlook est ouvert sur le poste client,
et qu'il verrouille l'accès à ce fichier.
l'idée de départ étant de passer à la machine suivante, dans la liste, si l'erreur se produisait... mais ça veut pas... aie:
Une idée quelqu'un ?
Merci d'avance :D
Bout de code et err.number = 0
Merci pour vos réponses ! Ca fait plizir ! :king:
J'ai essayé avec err.number =0, mais rien n'y fait...
Par contre, je vais peut-être creuser la piste de la fonction séparée.
Je vous tiens au jus...
@ +
Pour info : (et pour toi bbil ;) )
Code:
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
'Récupération des noms dans la table annuaire
Set oRst = New ADODB.Recordset
oRst.Open "select distinct a.nom_pc as nom_pc from annuaire a left join logs l on a.nom_pc=l.nom_pc and l.etat=0 order by l.id_sequence, a.nom_pc", oCnx
oRst.MoveFirst
compteurSucces = 0
While Not (oRst.EOF) And compteurSucces < limitSauvegarde
oNom = oRst("nom_pc")
'Interrogation de la machine
If Ping(oNom, sIP) Then
'Instanciation de l'objet
Set oFSO = New Scripting.FileSystemObject
If oFSO.FolderExists("\\" & oNom & Rep_partage) Then
'Montage du dossier partagé
Set oFld = oFSO.GetFolder("\\" & oNom & Rep_partage)
'---Comparaison avec la table détails_backup---
'Définition des états par défaut(Pas de sauvegarde nécessaire + Reset Compteur fichier)
Etat_sauvegarde = 4
compteurFichier = 0
For Each oFl In oFld.Files
compteurFichier = compteurFichier + 1
'Définition du Répertoire de sauvegarde des pst, sur le serveur
oRep = Rep_sauvegarde
oName = oFl.Name
oSize = oFl.Size
oDate = oFl.DateLastModified
oAcces = oFl.DateLastAccessed
oAttrib = oFl.Attributes
'MsgBox "size : " & oSize & " oDate : " & oDate
'Récupération des noms dans la table details_backup
Set oRst2 = New ADODB.Recordset
oRst2.Open "SELECT fichier, taille, date_maj FROM details_backup WHERE nom_pc ='" & oNom & "' AND fichier ='" & oName & "' AND taille='" & oSize & "' AND date_maj='" & oDate & "'", oCnx
If oRst2.EOF Then
If Not oFSO.FolderExists(oRep & oNom) Then
oFSO.CreateFolder (oRep & oNom)
End If
'Test pour exclure les fichiers avec un "~" ou ".tmp"
If InStr(oName, Chr(126)) = 0 Or InStr(oName, ".tmp") = 0 Then
'Test d'existence du fichier dans le répertoire de sauvegarde
If oFSO.FileExists(oRep & oNom & "\" & oName) Then
oFSO.DeleteFile oRep & oNom & "\" & oName, True
End If
On Error GoTo errcopy
FileCopy "\\" & oNom & Rep_partage & oName, oRep & oNom & "\" & oName
'Insertion dans la base (détails du fichier sauvegardé)
strSQL = "INSERT INTO details_backup SET nom_pc='" & oNom & "', id_sequence='" & Seq_actual & "',fichier='" & oName & "', taille='" & oSize & "', date_backup=Now(), date_maj='" & oDate & "'"
oCnx.Execute strSQL
'Incrementation du compteur succès
compteurSucces = compteurSucces + 1
'Changement d'etat(Sauvegarde à jour)
If Etat_sauvegarde <> 5 Then
Etat_sauvegarde = 0
End If
End If
End If
GoTo FinBoucle
errcopy:
MsgBox "Erreur de Copie"
Etat_sauvegarde = 5
FinBoucle:
MsgBox "Fin Boucle"
Next oFl
If compteurFichier = 0 Then
'Changement d'etat (pas de fichier dans le répertoire partagé)
Etat_sauvegarde = 3
End If
Else
'Changement d'etat (répertoire non partagé ou inexistant)
Etat_sauvegarde = 2
End If
Else
'Changement d'etat (pas de réponse du pc)
Etat_sauvegarde = 1
End If
'Insertion dans la base logs
strSQL = "INSERT INTO logs SET nom_pc='" & oNom & "', id_sequence='" & Seq_actual & "', etat='" & Etat_sauvegarde & "'"
oCnx.Execute strSQL
oRst.MoveNext |