🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #133813

Re: Do BraZby'ego.

#133813
From: Zbigniew Bratko
Date: Sat, 03 Sep 2016 23:00
83 lines
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>