logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Jak skopiować dane z Excela do Accesa gdy plik jest otwarty przez kilka osób?

Duck71 23 Mar 2020 11:59 1020 8
REKLAMA
  • #1 18553147
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Kolejny krótki temat, który ma rozwiązać 'upierdliwość'
    Poprzez TransferSpreadsheet importuje dane z zakresu w Excelu do tabeli w Access. Wszystko jest dobrze, jeśli skoroszyt nie jest otwarty przez jakiego użytkownika. Wówczas zamiast importu jest błąd. Pomyślałem, że skopiuje wcześniej skoroszyt do jakiegoś pliku tymczasowego poprzez FileCopy i z niego zrobie import, ale przy kopiowaniu też otrzymuje błąd o braku dostępu.
    Jak sobie z tym poradzić?
  • REKLAMA
  • #2 18553191
    PRL
    Poziom 41  
    Posty: 6948
    Pomógł: 953
    Ocena: 905
    Zamiast importować możesz połączyć się ze źródłem danych Excela, o czym pewnie dobrze wiesz.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 18553471
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Jest ten sam problem z dostępem
  • REKLAMA
  • #5 18554573
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Jak skoroszyt otwarty jest na tym samym komputerze to faktycznie nie ma problemu zarówno z tabelą połączoną jak i importem. Nawet jeśli jest on otwarty 'tylko do odczytu'. Jednak w sieci jest z jakiegoś powodu inaczej. Pojawia się chyba błąd 75 (lub 70) - nie pamiętam a w domu nie sprawdzę.
    Przy korzystaniu z podzielonej bazy stosowanie tabeli połączonej trochę mija się z celem, ponieważ tak stworzonej tabeli w bazie wewnętrznej nie da się udostępnić w bazach zewnętrznych. Ponadto każde odwołanie do tabeli połączonej powoduje sprawdzenie wartości w skoroszycie co bardzo widocznie spowalnia działanie i generuje błąd o braku dostępu, gdy skoroszyt jest otwarty gdzieś w sieci.
  • #6 18555507
    PRL
    Poziom 41  
    Posty: 6948
    Pomógł: 953
    Ocena: 905
    Co nazywasz bazami wewnętrznymi, a co zewnętrznymi?
    Na obrazku jest arkusz otwarty w sieci, a u mnie na połączonym arkuszu wykonana kwerenda dołączająca z arkusza do tabeli lokalnej.
    Działa, jak powinno. I jako arkusz połączony i jako import arkusza, co widać na filmie.
    Jak skopiować dane z Excela do Accesa gdy plik jest otwarty przez kilka osób?
    Załączniki:
    • Nagranie 18.mp4 (995.74 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    Pomogłem? Kup mi kawę.
  • #7 18556099
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Jak skopiować dane z Excela do Accesa gdy plik jest otwarty przez kilka osób? - gdy skoroszyt jest otwarty na innym kompie do edycji.
    Błąd pojawia się na FileCopy
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod

    Baza wewnętrzna zawiera tylko tabele a zewnętrzne zawierają tabele z nią połączone (standard przy dzieleniu bazy w Accessie) oraz kwerendy, raporty itd.
    Duck71 napisał:
    Jak skoroszyt otwarty jest na tym samym komputerze to faktycznie nie ma problemu zarówno z tabelą połączoną jak i importem. Nawet jeśli jest on otwarty 'tylko do odczytu'.

    Na obrazku skoroszyt jest otwarty na Twoim kompie, a nie chodzi o położenie pliku tylko o miejsce jego edycji w momencie kopiowania. Otwórz ten skoroszyt TYLKO na kompie kolegi/koleżanki i wtedy spróbuj..
    W Windowsach nie ma problemu z kopiowaniem gdzie indziej edytowanego skoroszytu. Co tu jest nie tak...
  • REKLAMA
  • Pomocny post
    #8 18556120
    PRL
    Poziom 41  
    Posty: 6948
    Pomógł: 953
    Ocena: 905
    Cytat:
    Na obrazku skoroszyt jest otwarty na Twoim kompie

    Na obrazku widać, że Excel jest otwarty na komputerze zdalnym (AnyDesk).
    Na filmie uruchamiam makro, które importuje z Arkusz1 (z zasobu sieciowego \\serwer\bekap\a.xlsx) do tabeli Excel, co działa. Chyba o pobranie danych Ci chodzi, a nie o kopiowanie pliku, prawda?

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Nic dziwnego, że masz błąd uprawnień, skoro plik jest otwarty.

    Możesz skopiować tak:

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
    Pomogłem? Kup mi kawę.
  • #9 18563862
    Duck71
    Poziom 9  
    Posty: 154
    Pomógł: 3
    Ocena: 14
    Sprawdzone. Powyższe rozwiązuje problem braku dostępu przy kopiowaniu otwartego skoroszytu gdzieś w sieci LAN.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik napotkał problem z importowaniem danych z Excela do Accessa, gdy plik Excela jest otwarty przez innych użytkowników, co skutkuje błędem dostępu. Proponowane rozwiązania obejmują połączenie z danymi Excela zamiast importu oraz użycie obiektu FileSystemObject do skopiowania pliku zdalnego do lokalnego, co omija problem z dostępem. Użytkownicy zauważyli, że import działa poprawnie, gdy skoroszyt jest otwarty na tym samym komputerze, ale w sieci występują ograniczenia. Wskazano również na problemy z wydajnością przy korzystaniu z tabel połączonych w bazach danych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA