Przemysław Kubiak

Przemysław Kubiak Architekt, ARPIM

Temat: Dane zewnętrzne z Excela

Mam pewien problem z tworzeniem połączenia danych z arkuszem xls. (W Access 2016: Dane zewnętrzne / Excel / Połącz ze źródłem danych, tworząc tabelę połączoną).
Chciałbym aby zaimportowane liczby były (przeważnie jest to liczba i pięć miejsc po przecinku) potraktowane przez Accces jako liczby. Nie wiedzieć czemu część kolumn z liczbami pobierane są jako "liczby", a część jako "krótki tekst". Zmienić tych właściwości (Typu danych) się nie da. Dzieje się to niezależnie od tego czy w excelu komórki mam ustawione na "Ogólne" czy jako "liczbowe".
Dodatkowa informacja jest taka, że plik xls jest również tworzony poprzez połączenie z inna bazą Access. I te dane pobrane z Access importują się poprawnie. Natomiast te obliczone (dodatkowe kolumny) już nie.
Radzę sobie w ten sposób, że zamiast tabeli połączonej robię import - wówczas w kreatorze importu zmieniam kolumny na "podwójna precyzja" . Wtedy jest w porządku. Czemu tej opcji nie ma przy łączeniu z tabelą?

Temat: Dane zewnętrzne z Excela

Ponieważ Access dobiera rodzaj kolumny zgodnie z wartościami jakie "spotka" w sheet'ie Excela, A więc jeżeli zaznaczysz opcję HasHeader to excel sprawdzi jaki jest rodzaj danej w komórce excela, z pominięciem nagłówka i taki typ przypisze dla całej kolumny. Dlatego ważne jest żeby w podłączaniu plików jako tabele połączone pik byłyi z jasno zdefiniowanym typem danych (NumberFormat) w skoroszycie. wyłączając rodzaj Ogólny.

Oczywiście można to "ogarnąć" z wykorzystaniem kwerendy i funkcji konwerujących wartość na wymagany przez nas typ danej, lub inaczej , wykorzystując VBA ale to juz bardziej w momencie przerzucania danych z tabeli połączonej do tej właściwej.

edit:
"Ponieważ Access dobiera rodzaj kolumny zgodnie z wartościami jakie..."

NIe wartościami w komórce tylko typem przypisanym dla danej komórki.Ten post został edytowany przez Autora dnia 18.07.18 o godzinie 14:01

Następna dyskusja:

[Access 2003] dane w tablic...




Wyślij zaproszenie do