Article View: pl.comp.bazy-danych.msaccess
Article #133813Re: Do BraZby'ego.
From: Zbigniew Bratko
Date: Sat, 03 Sep 2016 23:00
Date: Sat, 03 Sep 2016 23:00
83 lines
2577 bytes
2577 bytes
W dniu 2016-09-02 o 12:24, Jacek pisze: > Cześć Zbyszku. > > Pisałem na mejla, ale wrócił. > Pozwolę sobie zamieścić tutaj. > > Napisałem taki prosty programik do robienia archiwizacji. > Pierwotnie używałem Shell(xcopy…), ale że folderów Buchaltera jest jakieś > 80, to uruchamiało się tyle ‘hostcon.exe’ i mój > komunikat o skończonym kopiowaniu był nieprawdziwy. > > Próbuję ze scripting, ale mi się wywala. > Ścieżka do plików źródłowych istnieje, tworzy się pierwszy katalok poprzez > MkDir, ale samo kopiowanie wywala błąd. > > P.S. Jako że baza Płatnika i pliki Rewizora nie są duże, to stosuję Shell. > > Oto kod: Ciężko jest analizować kod, bez przykładowych plików, folderów, tabeli itp. Dla porządku użyłbym instrukcji Option Explicit w celu wymuszenia jawnej deklaracji zmiennych. Poniższe zmienne nie są zadeklarowane q, x, kat, k, qq, inf > > Private Sub Polecenie2_Click() > DoCmd.Hourglass True > Dim fobj As Object > Set fobj = CreateObject("Scripting.FileSystemObject") > Dim Data As String, s As String, d As String > Data = Format(Date, "yyyy-MM-dd") > If Dir("G:\" & Data & "\", vbDirectory) <> "." Then > MkDir ("G:\" & Data) > MkDir ("G:\" & Data & "\Platnik") > MkDir ("G:\" & Data & "\Rewizor") > MkDir ("G:\" & Data & "\Buchalter") > End If > q = Shell("Xcopy P:\Baza G:\" & Data & "\Platnik\ /E /Y /H", vbHide) > q = Shell("Xcopy R:\ G:\" & Data & "\Rewizor\ /E /Y /H", vbHide) > [...] > For x = 1 To rs.RecordCount > If rs.Fields("Archiwizowac") = True Then > Kat = rs.Fields("Katalog") > MkDir ("G:\" & Data & "\Buchalter\" & Kat) > k = "Xcopy F:\Buch\" & Kat & " G:\" & Data & "\Buchalter\" & Kat & > \ /E /Y /H" Powyższa linijka chyba jest zbędna, jeśli nie to powinna mieć postać: k = Shell("Xcopy F:\Buch\" & kat & " G:\" & Data & "\Buchalter\" & kat & "\ /E /Y /H") gdyż po zadeklarowaniu zmiennej k jako typ Long dostaję błąd nr 13 Type Mismath. Bez użycia instrukcji Option Explicit zmienna k jest Typu Variant i przypisywany do niej ciąg znaków "Xcopy F: ..... \ /E /Y /H" jest jak najbardziej prawidłowy, tyle tylko że nie dostajesz informacji, czy ta linijka w ogóle zadziałała. > s = "F:\Buch\" & Kat & "\" > d = "G:\" & Data & "\Buchalter\" & Kat & "\" Spróbuj, czy zadziała ścieżka 's' bez ostatniego backslash'a: d = "G:\" & Data & "\Buchalter\" & Kat & "" fobj.CopyFolder s, d, True [...] > End Sub > -- Pozdrowienia BraZby www.faq.accdb.pl www.accdb.pl
Message-ID:
<nqfdkn$mm3$1@node2.news.atman.pl>
Path:
polish.pugleaf.net!archive.newsdeef.eu!apf1.newsdeef.eu!news.usenet.farm!..!..!not-for-mail
References:
<1vgbj07534ww9$.1sl0ks9vb4qus$.dlg@40tude.net>