IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème avec la date de modification


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de imparator_42
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 242
    Par défaut Problème avec la date de modification
    J'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
         '*******************************************************************************
         ' Script permettant D 'effacer les fichiers Qui date de plus de 15 jours
         ' Avec interface Graphique
         '
         '*******************************************************************************
        Private Sub Form_Load()
     
     
     
         strComputer = "."
     
         Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
         Set objFSO = CreateObject("Scripting.FileSystemObject")
         Set objShell = CreateObject("Shell.Application")
         Set objFolder = objShell.BrowseForFolder _
         (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, ".")
         Set objFolderItem = objFolder.Self
         strFolderName = objFolderItem.Path
     
         Set colSubfolders = objWMIService.ExecQuery _
         ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
         & "Where AssocClass = Win32_Subdirectory " _
         & "ResultRole = PartComponent")
     
         'Wscript.Echo strFolderName
     
         arrFolderPath = Split(strFolderName, "\")
         strNewPath = ""
         For i = 1 To UBound(arrFolderPath)
         strNewPath = strNewPath & "\\" & arrFolderPath(i)
         Next
         strPath = strNewPath & "\\"
     
         Set colFiles = objWMIService.ExecQuery _
         ("Select * from CIM_DataFile where Path = '" & strPath & "'")
     
         For Each objFile In colFiles
         Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
         'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
         If DateDiff("d", objReadOnlyFile.DateLastModified, Date) > 15 Then
     
         objFile.Delete
         End If
         Next
     
         For Each objFolder In colSubfolders
         GetSubFolders strFolderName
         Next
     
        End Sub
        Sub GetSubFolders(strFolderName)
     
         Set colSubfolders2 = objWMIService.ExecQuery _
         ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
         & "Where AssocClass = Win32_Subdirectory " _
         & "ResultRole = PartComponent")
     
         For Each objFolder2 In colSubfolders2
         strFolderName = objFolder2.Name
         'Wscript.Echo
         'Wscript.Echo objFolder2.Name
         arrFolderPath = Split(strFolderName, "\")
         strNewPath = ""
         For i = 1 To UBound(arrFolderPath)
         strNewPath = strNewPath & "\\" & arrFolderPath(i)
         Next
         strPath = strNewPath & "\\"
     
         Set colFiles = objWMIService.ExecQuery _
         ("Select * from CIM_DataFile where Path = '" & strPath & "'")
     
         For Each objFile In colFiles
         Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
         If DateDiff("d", objReadOnlyFile.DateLastModified, Date) > 15 Then
         'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
         objFile.Delete
     
         End If
     
         Next
     
         GetSubFolders strFolderName
         Next
         End Sub
    Quand je choisis un dossier qui n'a pas de sous-dossier il marche ; mais quand je choisi un dossier qui a un sous-dossier il beugle ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
         Set colSubfolders2 = objWMIService.ExecQuery _
         ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
         & "Where AssocClass = Win32_Subdirectory " _
         & "ResultRole = PartComponent")
    Merci d'avance

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par imparator_42 Voir le message
    .je choisi un dossier qui a un sous-dossier il beugle ici : ...
    du verbe beugler ..? comme les vaches ..?

    et il sort d'ou le beuglement ...? il n'est pas accompagné d'un message d'erreur ..?

    je parierai bien sur la variable objet : objWMIService ... qui n'est déclaré nulle part..

  3. #3
    Membre confirmé Avatar de imparator_42
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 242
    Par défaut
    je ne sais pas pourquoi c'est écris beugler c'est à cause d'1 dico , quand je fait des fautes de frappes, y me les corrige

    Mais y a un problème quand le dossier choisi a un sous-dossier qui contient des fichiers...

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par bbil Voir le message
    . ...? il n'est pas accompagné d'un message d'erreur ..?

    je parierai bien sur la variable objet : objWMIService ... qui n'est déclaré nulle part..
    tiens essai une "rustine" rajoute la ligne :

    tout en haut de ton code ... , en dehors de toutes procédures

  5. #5
    Membre confirmé Avatar de imparator_42
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 242
    Par défaut
    Merci BBil
    il n y a plus cet erreur
    Mais il y en a un autre

    => Run-time Error "424"
    Object Required

    On me montrant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objfileReadOnlyFile = objFSO.GetFile(objfile.Name)
    snif

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    c'est le même problème...

    Tu utilise la varible objet OFso ... sans la déclarer .. d'ou VB ce charge de le faire , VB "générant" des variables locales tu te retrouve donc avec deux variables locales oFSO l'unle dans ta procédure Form_Load et l'autre dans la procédure GetSubFolders..La deuxième n'est pas initialisée d'ou ton erreur..

    pour corriger cela utilise une variable oFSO globale à ton module en la déclarant tout en haut de ton code...(Dim oFSO ..)


    pour éviter ce genre d'erreur je t'encourage à rajouter tout en haut de ton code la ligne :
    cette option te force à déclarer explicitement toutes tes variables ..et évite ainsi ce genre d'erreur

  7. #7
    Membre confirmé Avatar de imparator_42
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 242
    Par défaut
    le programme semble marchait un peu prés :d
    mais des fois il me sors le message avec Switch to...
    Merci BBil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec les dates!!
    Par JauB dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/10/2005, 09h16
  2. problème avec les dates nulles
    Par shingo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 30/09/2005, 12h32
  3. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  4. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18
  5. Interbase - dbExpress -> problème avec les dates
    Par marghett dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 03h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo