jak automatycznie otworzyć kolejny plik accessa, po zakończeniu aklualizacji obecnie otwartego.

Odpowiedz Nowy wątek
2019-06-05 10:17
0

Pytanie jak w tytule, a sprawa wygląda następująco. Muszę codziennie aktualizować pliki/bazy access-owe, które ze względu na wielkość są podzielone na kilka plików. Każdy plik musi się aktualizować w odpowiedniej kolejności. Do tej pory mam to ustawione w harmonogramie w godzinach nocnych, kiedy sieć nie jest mocno obciążona i każdy plik ma szytwno ustawioną godzinę. Każdy plik posiada autoexec, który uruchamia makro, utworzone poprzez wybranie akcji z listy, a nie VBA. Dzięki temu forum wiem już, że można takie makro konwertować na VBA, które dla przykładowego pliku wygląda jak poniżej.

Function aktualizacja()
On Error GoTo aktualizacja_Err

    DoCmd.SetWarnings False
    DoCmd.OpenQuery "00_czysci tabela_moje_kody", acViewNormal, acEdit
    DoCmd.OpenQuery "00_aktualizuje tabela_moje_kody", acViewNormal, acEdit
    DoCmd.OpenQuery "00_czysci tabela_sprzed_dzienna_30", acViewNormal, acEdit
    DoCmd.OpenQuery "00_aktualizuje tabela_sprzed_dzienna_30", acViewNormal, acEdit
    DoCmd.OpenQuery "00_tworzy tabela_regulacji_mag_surowe", acViewNormal, acEdit
    DoCmd.OpenQuery "00_czysci tabela_MEA_teraz", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_aktualizuje tabela_MEA_teraz", acViewNormal, acEdit
    DoCmd.OpenQuery "00_czysci tabela_MEA", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_dodaje tabela_MEA_his", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_dodaje tabela_MEA_teraz", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_czysci tabela_sprzed_surowe_teraz", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_aktualizuje tabela_sprzed_surowe_teraz", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_czysci tabela_sprzed_surowe", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_dodaje sprzed_surowe_his", acViewNormal, acEdit
    DoCmd.OpenQuery "00_nowe_dodaje sprzed_surowe_teraz", acViewNormal, acEdit
    DoCmd.SetWarnings True
    DoCmd.Quit acSave

aktualizacja_Exit:
    Exit Function

aktualizacja_Err:
    MsgBox Error$
    Resume aktualizacja_Exit

End Function

Jest sposób na zmodyfikowanie takiego kodu, żeby po zakończeniu aktualizacji otwierał kolejny plik, który powinien być aktualizowany w następnej kolejności?

edytowany 2x, ostatnio: malay, 2019-06-05 10:19

Pozostało 580 znaków

2019-06-12 14:58
0

w nocy w pierwszej kolejności komputer się restartuje, żeby odświeżyć źródła danych i wznowić ewentualne połączenia. Po restarcie dopiero uruchamiane są skrypty. Przy pierwszym uruchomieniu raczej nie ma możliwości, żeby nie były zakończone poprzednie próby uruchomienia.

Pozostało 580 znaków

2019-06-12 15:04
0

To po restarcie usunąłbym,jeszcze pliki laccb aby mieć pewność, że żadnej blokady na accdb nie ma

Pozostało 580 znaków

2019-06-12 15:27
0

.... a może na początku każdego skryptu usuwać *.laccb

Pozostało 580 znaków

2019-06-12 16:02
0

przetestuj, mnie trudno coś więcej powiedzieć bo trzeba y było znać dokladnie co w tych plikach jest

Pozostało 580 znaków

2019-06-21 16:34
0
Panczo napisał(a):

Generalnie jezeli pracujesz na granicy rozmiaru to warto przejśc na inny silnik.

Jak przejść na inny silnik? W tej chwili używam accessa, do ściągnięcia danych z serwerów. uruchamiane jest w nocy, kiedy sieć nie jest obciążona. Magazynuje je na dysku w plikach .accdb. Taki format i miejsce powoduję, że mam łatwy i bardzo szybki dostęp do danych z poziomu excel. Tabele przestawne, wykresy, raporty, wszystko z poziomu excela, bez potrzeby magazynowania tych danych w formacie .xlsx. Minus taki, że pracuję na prawie maksymalnych rozmiarach. Na przełomie roku kalendarzowego jest usuwany/archiwizowany najstarszy rok i tabele się zmniejszają, ale w drugiej połowie roku i pod koniec już jest ciasno.

Jest inny sposób na przygotowanie tych danych?

Pozostało 580 znaków

2019-06-21 16:57
1

Np. darmowy SQL Server Express - Dane ciągniesz bezpośrednio do Excela jak teraz z Accessa. Wszystkie operacje ETL robisz w SSIS i temat masz ślicznie ogarnięty.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0