• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Stworzenie makra w Access, które pobiera plik z Exela i zaczytuje jego dane

Object Storage Arubacloud
0 głosów
297 wizyt
pytanie zadane 19 maja 2023 w Visual Basic przez Marys94 Nowicjusz (120 p.)

Cześć, 

chciałbym nieco zoptymalizować u siebie proces, mianowicie codziennie wpada mi raport na zasób sieciowy w formie zwykłego rozszerzenia exela. Filtruje konkretne kolumny, kopiuje dane ,potem zapisuje w csv i ładuje na maszynę do wykonania. 

Chciałbym w Access zrobić makro, które samodzielnie będzie pobierać plik z zasobu, wykonywał zapisane kwarendy i zapisywał formie zwykłego exela , chyba da się zapisać bezpośredniego w csv.

 

Kwarendy zrobiłem w SQL i wpiąłem do Accessowego makra - wyszukuje się poprawnie, ale rozbija wyszukiwanie na każdą kwarendę osobno , a nie scala w jedno - to pierwszy problem. 

 

Drugi z którym walczę, to napisanie makra aby otwierał i pobierał dane z konkretnej lokalizacji - ale wywala błędy. 

Sub OtworzPlikExcel()



    Dim excelApp As Object

    Dim excelWorkbook As Object

    Dim excelWorksheet As Object

    Dim filePath As String

   

    ' Ścieżka do pliku Excel

    filePath = "C:\ścieżka\do\pliku.xlsx"

   

    ' Utwórz nową instancję aplikacji Excel

    Set excelApp = CreateObject("Excel.Application")

   

    ' Wyłącz wyświetlanie okna Excela

    excelApp.Visible = False

   

    ' Otwórz plik Excel

    Set excelWorkbook = excelApp.Workbooks.Open(filePath - ścieżka pliku)

    Set excelWorksheet = excelWorkbook.Sheets("Nazwa_arkusza")

   

    ' Pobierz dane z arkusza Excel do Access

    Dim wartość As Variant

    wartość = excelWorksheet.Range("A1").Value - załóżmy że zakres to od A1 ; A600 do X1 ; X600
chociaż nie wiem czy tutaj nie można użyć in selection? 

 

    ' Zamknij plik Excel

    excelWorkbook.Close

  

    ' Zamknij aplikację Excel

    excelApp.Quit

End Sub

i w sumie już na początku jest błąd - error 429 - activeX component cant create object

pominąłem tworzenie zatem instancji i wtedy pojawia się taki błąd:

error 91 - object variable or With block variable not set - co pewnie wywołuję się przez to że nie ma obiektu.

 

I nie wiem jak się za to zabrać. Jakieś pomysły?

 

komentarz 19 maja 2023 przez VBService Ekspert (254,570 p.)

Zgaduję, że błąd

error 429 - activeX component cant create object

dotyczy tego zapisu

 

Set excelApp = CreateObject("Excel.Application")

 

AFAIK bez poprawnego pobrania instancji aplikacji Excel-a, dalsza część kodu nie zadziała.

Uporaj się w pierwszej kolejności z tym błędem:

error 429 - activeX component cant create object

komentarz 20 maja 2023 przez Marys94 Nowicjusz (120 p.)
No tak tyle to wiem sam. Poczytałem i to niby błędy w rejestrze aplikacji. No ale z tym akurat nic nie zrobię, bo grzebanie w rejestrach jest po stronie administratora. Jakiś inny pomysł żeby napisać taki kod?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 1 września 2022 w Visual Basic przez morking Nowicjusz (210 p.)
0 głosów
0 odpowiedzi 301 wizyt
0 głosów
0 odpowiedzi 195 wizyt
pytanie zadane 6 kwietnia 2020 w Visual Basic przez Jarek K. Początkujący (330 p.)

92,690 zapytań

141,603 odpowiedzi

320,103 komentarzy

62,051 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...