🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Aktualizacja frontonu

#137420
From: medykator
Date: Thu, 30 Mar 2017 17:19
92 lines
6196 bytes
W dniu poniedziałek, 20 lutego 2017 19:46:39 UTC+1 użytkownik Jan Koc napisał:
> Witam. Proszę o pomoc .
> Usiłuję zastosować rozwiązanie Krzysztofa Pozorka do aktualizacji frontonu bazy.
> Baza oryginalna = = "X:\....\13p.accdb"
> W folderze klienta, gdzieś w sieci , znajduje się kopia nieaktualna …..\13p.accbd oraz baza = „…..\KopiarkaNowa.accdb”.  Przy zamknięciu bazy „13p”, po sprawdzeniu, że jest nieaktualna, następuje otwarcie bazy KopiarkaNowa, która ładnie kopiuje nową wersję. Wszystko zgodnie z projektem KP, zmiana to zamiast skryptu normalna baza ACCBD.
> I to rozwiązanie postanowiłem poprawić. Chcę zlikwidować bazę „KopiarkaNowa” u klienta i importować ją wtedy gdy będzie potrzebna z folderu „X:\...\KopiarkaNowa.accdb. Przy pierwszym wywołaniu bazy „13p” u klienta KopiarkaNowa.accdb byłaby wycinana. W ten sposób nie musiałbym osadać KopiarkiNowej u klientów, w różnych folderach, szukać gdzie mi ją przenieśli, tłumaczyć po co jest itd.
> I tu coś nie działa.
> Po skopiowaniu (VB) KopiarkaNowa.accdb, przy próbie otwarcia otrzymuję komunikat, że „KopiarkaNowa” to nierozpoznany format bazy
> Z góry dziękuję za pomoc i przepraszam, że tak rozwlekle, ale ostatnim razem trzy tygodnie korespondowałem na grupie i dopiero gdy wszystko wyłożyłem kawa na ławę, to okazało się, że zmiana jednego ustawienia (usunięcie apostrofa ze specyfikacji exportu) załatwiała sprawę. 
> 
> Private Sub Form_Unload(Cancel As Integer)
> On Error Resume Next
> Dim objAcc As Access.Application
> Dim NewVer As Long, OldVer As Long, NewDb As Object
> Dim NewPath As String   'ścieżka do nowej wersji bazy na sieci
> Dim OldPath As String   'ścieżka do starego pliku bazy
>         'zamykamy, sprawdzając, czy nie ma nowej wersji programu
>         NewPath = "X:\...\13p.accdb"
>               Set NewDb = DBEngine.OpenDatabase(NewPath)
>             NewVer = NewDb.Containers("Databases").Documents("UserDefined").Properties("WersjaProg")
>             NewDb.Close
>         Set NewDb = Nothing
>         OldVer = DBEngine.Workspaces(0)(0).Containers("Databases").Documents("UserDefined").Properties("WersjaProg")
>         If Err <> 0 Then
>             MsgBox "Wystąpł błąd”
>         ElseIf OldVer >= NewVer Then
>             'Ok, baza jest w aktualnej wersji
>         Else
> ‘Kopiuję bazę „KopiarkaNowa” jeśli nie istnieje
>        Dim strSciezkaPliku As String
> strSciezkaPliku = CurrentProject.Path & "\KopiarkaNowa.accdb"
> Dim fs
> Set fs = CreateObject("Scripting.FileSystemObject")
>   If fs.FileExists(strSciezkaPliku) Then
> ‘ I tu ładnie kopiuje bazę “13p”
>                 Set objAcc = New Access.Application
>              objAcc.OpenCurrentDatabase CurrentProject.Path & "\KopiarkaNowa.accdb", True
>              objAcc.DoCmd.OpenForm "startowy", , , , , acHidden
>              objAcc.Forms!startowy.Form.TimerInterval = 1000 'tchnięcie życia w wywołany formularz
> Else
>        'skopiujemy bazzę KopiarkaNowa do aktualnego katalogu
>          Dim CurDB As String, KopiaDB As String, LenDB As Long, Plik As String, NrPliku As Long
>    DoCmd.Hourglass -1
>     CurDB = "X:\.....\KopiarkaNowa.accdb"
>     Err = 0
>     Plik = Space(FileLen(CurDB))
>     NrPliku = FreeFile
>     Open CurDB For Binary Access Read Shared As #NrPliku
>         Get #NrPliku, 1, Plik
>     Close #NrPliku
>     If Err = 52 Then
>         MsgBox "Brak dostępu do pliku 
>     ElseIf Err Then
>         MsgBox Err.Description
>     Else  
>        KopiaDB = CurrentProject.Path & "\KopiarkaNowa.accdb"
>     
>         If KopiaDB & "" <> "" Then
>                Kill KopiaDB
>              Err = 0
>            Plik = Space(FileLen(CurDB))
>             NrPliku = FreeFile
>             Open KopiaDB For Binary Access Write Shared As #NrPliku
>                 Put #NrPliku, 1, Plik
>             Close #NrPliku
>             If Err = 0 Then
>             Else
>                 MsgBox Err.Description
>             End If
>         End If 
>     DoCmd.Hourglass 0             
>         End If       
>         On Error GoTo rrr
>                     Set objAcc = New Access.Application
>              objAcc.OpenCurrentDatabase CurrentProject.Path & "\KopiarkaNowa.accdb", True
>              ‘ i tu wyskakuje komunikat o nierozpoznanym formacie bazy
>              objAcc.DoCmd.OpenForm "startowy", , , , , acHidden
>                 'otwieramy formularz w zewnętrznej bazie, który przejmie sterowanie nad dalszym przebiegiem operacji.
>              objAcc.Forms!startowy.Form.TimerInterval = 1000 'tchnięcie życia w wywołany formularz
>      End If
>     End If
> rrr_Exit:
>      Application.Quit
>     Exit Sub
> rrr::
>     MsgBox Error$
>     MsgBox "Skontaktuj się z administratorem  +48 694 00 55 45."
>     Resume rrr_Exit     
> End Sub


http://www.access24.pl
Technical Details
Message-ID: <c7fd87bc-9c3c-47bb-9121-496bc9ae8f8f@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!y18no2165725itc.0!news-out.google.com!j72ni1419itb.0!nntp.google.com!y18no2158733itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <7f2d2dab-7fa4-4540-910b-a59d66b3b231@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 10.36.89.1 with SMTP id p1mr1551985itb.16.1490894348230;        Thu, 30 Mar 2017 10:19:08 -0700 (PDT)
X-Received: by 10.157.9.183 with SMTP id q52mr81144otd.11.1490894348191; Thu, 30 Mar 2017 10:19:08 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!y18no2165725itc.0!news-out.google.com!j72ni1419itb.0!nntp.google.com!y18no2158733itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.bazy-danych.msaccess
Date: Thu, 30 Mar 2017 10:19:07 -0700 (PDT)
In-Reply-To: <7f2d2dab-7fa4-4540-910b-a59d66b3b231@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.36.52.218; posting-account=yG2t1QoAAABxwstcgPA_w_wmVew6W-CB
NNTP-Posting-Host: 178.36.52.218
References: <7f2d2dab-7fa4-4540-910b-a59d66b3b231@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c7fd87bc-9c3c-47bb-9121-496bc9ae8f8f@googlegroups.com>
Subject: Re: Aktualizacja frontonu
From: medykator@gmail.com
Injection-Date: Thu, 30 Mar 2017 17:19:08 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit