vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 18 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Import danych z Excel do Access


otwartyotwarty rozpoczął: Zwierzak postów: 3



napisał: Zwierzak
postów: 31


umieszczony:
17 listopada 2008
13:12

  
Cytat:
Nie zrozumiałam do końca Twojego pytania...


W Excelu mam w arkuszu tabelkę przygotowaną do eksportu do Accessa. Komórki w niej zawierają formułki np.
=JEŻELI(C3="";"";Dane!$K$2)


i wypełniają się wartościami w zależności tego jak wypełnię test w innym arkuszu. Czasem powstają mi 2 wiersze danych w tabeli, czasem 10, zależy to od tego jak wypełnię test. Próbuję przenieść później makrem (poprzedni post) wypełnione dane do Accessa, ale w wynikowej bazie .mdb powstaje mi dużo pustych rekordów, ponieważ Excel wszystkie komórki zawierające formuły traktuje jako dane, nie ważne czy mają one jakieś wartości.
Nie wiem czy da się to jakoś obejść, chyba wymyślę inny sposób na przeniesienie danych z arkusza testu niż te formułki w komórkach.

Cytat:
Nie jestem pewna czy ten eksport chcesz wykonać z poziomu Excela...
Jeśli tak, to "createobject"... nie jest konieczne... wystarcCytat:
zy DAO lub ADODB.


Tak, eksport robię za pomocą makra w Excelu.
Nie zgłębiałem jeszcze Tao DAO, ale chyba najwyższy czas to zrobić, bo słyszałem, że można tam robić niezłe sztuczki.

Pozdrawiam
napisał: jalamas
postów: 316


umieszczony:
16 listopada 2008
20:21

  
Zwierzątko
Nie zrozumiałam do końca Twojego pytania...
Nie jestem pewna czy ten eksport chcesz wykonać z poziomu Excela...
Jeśli tak, to "createobject"... nie jest konieczne... wystarczy DAO lub ADODB.
Załącz fragment swojej aplikacji.
napisał: Zwierzak
postów: 31


umieszczony:
14 listopada 2008
10:49

  
Witam,
Mam problem. Próbuję zaimportować wybrane dane z arkusza Excel do nowego pliku bazodanowego Access.
Robię to topornie przy użyciu kodu:
Const acImport = 0
Const acSpreadsheetTypeExcel9 = 8
Set objAccess = CreateObject("Access.Application")
objAccess.NewCurrentDatabase "C:\Bazy\Baza.mdb"
objAccess.DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    "Nazwa_tabeli", "C:\Scripts\Nazwa_arkusza.xls", True, "A1:F25"


Komórki w zakresie A1:F25 nie zawsze są wypełnione danymi. Zawierają one formuły, które wstawiają do nich dane w zależności od zawartości komórek z innego arkusza.
I tu jest problem, bo powyższy kod powoduje zapisanie tych komórek do rekordów nie zależnie od tego czy są one puste czy nie, spowodowane jest to właśnie występowaniem nich formuł. Powoduje to zapchanie bazy pustymi rekordami, które nie zawierają żadnych danych.

Tu moje pytanie: Czy jest może jakiś parametr, który nakazuje pobierać tylko te komórki, które zawierają wartości, a nie formuły?

Wiem, że można by to poprzez skopiowanie makrem tego zakresu A1:F25 do innego miejsca i dopiero stamtąd zassać, ale może jest jakieś inne rozwiązanie?

Z góry dzięki za wszelką pomoc i pozdrawiam.


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z