Wypowiedzi
-
Witam,
Nie widzę tutaj wypowiedzi w zakresie WP 10, czy ktoś z Was "widział" taka grupę na GL ?
Pozdrawiam -
Witam,
Zbudowałem kilkanaście kwerend, które poukładałem w odpowiedniej kolejności w makro-polecenie (nie VBA). Chcę uzyskać informację o czasie trwania poszczególnych kwerend, czyli coś w formie LOG'u z informacją o nazwie makra i kwerendy oraz z czasem jej trwania (i konkretną datą-godziną zakończenia).
W tej chwili po każdej z kwerend dodaję "ekstra kwerendę", która robi insert do wydzielonej tablicy (LOGu) odpowiednich danych. Jeżeli dodaję jakąś kwerendę, to muszę dodać i tę kwerendę, która "LOGuje" czas trwania.
Zdaję sobie sprawę, że jest to rozwiązanie "zastępcze" i mało ergonomiczne, że nie wspomnę o nie możliwości jego trudności w przeniesieniu do innego makra, czy innej bazy.
Może ktoś z Was spotkał się z jakimś ciekawszym rozwiązaniem umożliwiającym analizę czasu trwania poszczególnych kwerend?
Docelowo zakładam, że tabela z LOGiem będzie miała kolumny: "Nazwa_Kwerendy","DataGodzina_Start","DataGodzina_Stop","Czas_Trwania". Dobrze by było jak by jeszcze była kolumna "Nazwa_Makra".
PozdrawiamTen post został edytowany przez Autora dnia 28.09.16 o godzinie 13:28 -
Marzanna, DZIĘKI za natchnienie :)
Import powiódł się, W ten sposób powstał workround na tego "problemu".
Czyli wszystkie kroki są takie:
1) otrzymany plik CSV/txt z separatorem ŚREDNIK lub TABulator, z kwalifikatorem tekstu cudzysłów podwójny/zwykły " z nagłówkami kolumn w pierwszym wierszu i z ustalonym kodowaniem znaków
2) import (do tabeli tymczasowej) albo do nowej tabeli, albo do tabeli z nazwami pól: Pole1, Pole2, Pole3, itd. ale tylko z ograniczeniem na separator (bez wybierania co jest kwalifikatorem tekstu i bez oznaczania, że pierwszy wiersz zawiera nagłówki kolumn)
3) replace (na kolumnach w których spodziewany jest ten problematyczny backslash) ciągu \" na "
4) przeładowanie z tabeli tymczasowej do tabeli docelowej ale jako ciągi tekstowe bez pierwszego i bez ostatniego znaku w polu (którym jest cudzysłów) z pominięciem rekordu z nagłówkami, albo przed przeładowaniem, skasować ten rekord
5) skasowanie zawartości tabeli tymczasowej, aby była "przygotowana" do kolejnego importu.
Może ktoś z tego skorzysta w przyszłości, a teraz jestem pewien, że "najbezpieczniejszym" separatorem nie jest ŚREDNIK lecz TABulator :)
Pozdrawiam -
Tak, rekordów jest ponad 30.000 :)
Natomiast po kolejnych dziesiątkach minut różnych testów i poszukiwań najprostszego rozwiązania doszedłem do tego, że zamiast to co opisałem wcześniej, wystarczy zastąpić ciąg znaków
\"
ciągiem
""
i teraz szukam rozwiązania, jak automatycznie to zrobić przed importem nie ingerując w plik źródłowy. Testy oczywiście zrobiłem podmieniając ten ciąg znaków jak opisałem powyżej, ale chciał bym to jakoś "zautomatyzować". Dzięki Tobie, przyszedł mi do głowy pomysł, aby faktycznie spróbować zaimportować do nowej tabeli, cały plik "jak jest" pozostawiając jedynie ogranicznik pola jako średnik. W takim wypadku nagłówki kolumn będą miały nazwy Pole1, Pole2, Pole3, itd., ale czy przy tym imporcie jednak nie "utnie" rekordu po znaku backslash, to sprawdzę jutro.
Pozdrawiam -
Owszem , wyłączenie kwalifikatora tekstu zaimportuje poprawnie, ale problem polega na tym, że jak tych kolumn jest 30-40 i każdą trzeba by oczyścić z początkowego i końcowego cudzysłowu, to ..... jest z tym trochę zabawy. Dodatkowo proponowane rozwiązanie nie zadziała, gdyż zawartość pliku jest:
"ID";"NazwaFirmy";"MiastoFirmy";"UlicaFirmy";"TelefonFirma"
"243";"Firma handlowa \"Mimi\" Artur Adamski";"LUBLIN";"ul. Długa 5";"13244657"
"12";"LAN Connect Sp. z o.o.";"Katowice";"al. Tadeusza Zawadzkiego \"Zośki\" 23";"21638453;21638567"
Czy plik ma nagłówek.
Przy takim imporcie trzeba by pomijać nie tylko kwalifikator tekstu, ale również i nagłowek (ponieważ nazwy kolumn nie zawierają cudzysłowu), a po imporcie (do tablicy tymczasowej), kasować rekord z nagłówkiem, oraz "poprawić" wszystkie kolumny, aby nie zaczynały się i nie kończyły cudzysłowem. Pomijając kwalifikator tekstu, pojawi się również inny problem. Chodzi o zapis w polu "TelefonFirma", gdzie podane sa dwa numery telefonów rozdzielone średnikiem.
Z różnych testów wydaje się, że najbardziej bezpiecznym separatorem kolumn będzie znak tabulacji, gdyż nie jest możliwe, aby w systemie źródłowym, w danym polu wprowadzić znak tabulacji.
Dlatego szukam rozwiązania, które pozwoliły by "w locie" na obróbkę pliku w ten sposób, aby nastąpiło usunięcie znaków cudzysłowa z pierwszego wiersza, gdzie są nagłówki kolumn, oraz dla całego pliku następowała by zamiana separatora kolumn z ŚREDNIK'a na TABulator. Po imporcie konieczne było by jeszcze oczyszcznie cudzysłowów na począku i na końcu każdego pola.
A może inne pomysły/rozwiązania? - coś w VBA?
PozdrawiamTen post został edytowany przez Autora dnia 23.08.16 o godzinie 11:07 -
Witam,
Plik źródłowy jest w formacie CSV z separatorem średnik i cudzysłowem jako ogranicznik pola. Problem mam w trakcie importu do Access'a 2010 z polem, w którym pomimo ogranicznika tekstu jest jeszcze backslash np.
"243";"Firma handlowa \"Mimi\" Artur Adamski";"LUBLIN"
Po imporcie w kolumnach mam tylko:
243
Firma handlowa \
zamiast:
243
Firma handlowa "Mimi" Artur Adamski
LUBLIN
W związku z tym szukam rozwiązania, które w trakcie importu usuwało by z pliku źródłowego tego backslash'a i tu myślałem o funkcji Replace, ale nie wiem jak ją wykorzystać w trakcie importu.
Zakładał bym może wykorzystanie array (w locie), albo stworzenia pliku tymczasowego, z którego był by faktycznie wykonany ten import. Plik źrdłowy NIE MOŻE ulec modyfikacji. Owszem można by otworzyć plik w notatniku i wykonać zamianę \" na sam ", ale nie o to mi chodzi.
To usuwanie tego backslash'a mogło by dotyczyć całego rekordu, albo wskazanych pól w rekordzie, gdyż są przypadki, że oprócz fragmentu nazwy firmy zapisanej w cudzysłowach, jeszcze trafiają się ulice np. "ul. Tadeusza Zawadzkiego "Zośki"".
Proszę o pomoc w rozwiązaniu powyższego.
Pozdrawiam -
Witam,
Proszę o pomoc jak zbudować dokumentację bazy, ale wg innych założeń jak są dostępne w kreatorze. Potrzebował bym taki informacji:
1. nazwa tabeli/makra/kwerendy (może być dodatkowo rozróżniane, czy to tabela, kwerenda, czy makro
2. opis zawarty we właściwościach tabeli/makra/kwerendy
3a. dla tabeli: nazwa pola, typ pola, informacja - komentarz dla pola
3b. dla kwerendy: kod SQL
3c. dla makra: składowe makra - nazwy kwerend i wszystkie inne polecenia danej kwerendy
4. schematu/informacji, w której kwerendzie/w którym makrze została wykorzystana dana tabela/kwerenda (albo odwrotnie tzn. nazwy kwerend/makr gdzie została wykorzystana dana tabela/kwerenda).
Do tej pory starałem się dosyć dokładnie to opisywać, ale baza tak mi się rozrosła (w tabele i kwerendy), że utrzymywanie oddzielnego pliku z dokumentacją stało się nie lada wyzwaniem.
Czy ktoś z Was spotkał się z czymś takim i robił taki/takie raport/raporty ? Zmieniając we właściwościach bazy aby pokazała ukryte obiekty nie przyniosło oczekiwanego efektu i dlatego tu teraz szukam pomocy/wskazówki/raportu.
Pozdrawiam -
Jak zrobić kopię kontaktów z MS Exchange jako np. lokalny plik pst, albo inny Off-Line'owy plik "bazodanowy"?
Szukam sposobu jak efektywniej i szybciej przeszukiwać listę kontaktów z MS Exchange za pomocą Access'a. Podpięcie jako link w Access'ie jest nie skuteczne, gdyż wyszukanie nawet jednego adresu powoduje, że Access "umiera" pomimo, że na 100% poszukiwany adres jest książce adresowej Exchange, z której wyszukiwanie za pomocą Outlook'a jest natychmiastowe.
Pozdrawiam -
:)
Jak się to stało, że nie wpadłem na to ?? .... hmm
A tak w ogóle to dlaczego w takim przypadku należy używać ROUND ? Przecież z samego dodawania w kalkulatorze uzyskuje się poprawne wartości, a Access ma jakieś "humory" ?? -
Witam,
Mam problem z sumowaniem w Access'ie 2010 :(
tablica k11:
zbior | kwota (zbioro - tekst, kwota - liczba)
dane:
UWG/33 | 30,77
UWG/33 | 1907,74
UWG/33 | -1907,74
UWG/33 | -30,77
kwerenda:
SELECT k11.ZBIOR, Sum(Round([kwota],2)) AS sum_kwota
FROM k11
GROUP BY k11.ZBIOR
HAVING (((k11.ZBIOR)="UWG/33") AND ((Sum(Round([kwota],2)))<>0));
W podglądzie jest rekord z sum_kwota ="0", ale jak kliknę na tej wartości to pokazuje się "-1,60937929649663E-12".
podobny problem gdy są wartości
np.:
-10 300,48
9 795,26
to zamiast sumy -505,22
kwerenda zwraca: -505,219999999999
O co chodzi ? Czy trzeba coś w Accessi'e 2010 specjalnie ustawiać ??
Dane źródłowe pochodzą z pliku tekstowego i tam nie ma żadnych wartości z "ułamkiem grosza", więc dlaczego tak proste sumowanie nie działa ??
Pozdrawiam -
Tak też robię, najpierw tabela wynikowa, a potem w makro akcja "ImportEksportArkuszaKalkulacyjnego" :)
A wracając do poprzedniego pytania: jak powinien wyglądać szablon do wykorzystania w makro akcji "EksportZFormatowaniem" ? -
Też jest to jakiś pomysł, ale zanim dane nadają się do wyeksportowania, to w Access'ie jest uruchamianych sporo kwerend. Dlatego wszystkie czynności definiuję jako akcje w makrach i po kliknięciu go (albo guzika na formularzu) uzyskuję dane w Excel'u.
Twój pomysł spowoduje rozbicie jednego kroku na dwa, a nie to chcę osiągnąć, zważywszy na to (o tym nie pisałem), że bazkę napisałem w wersji "portable" i każdy kto ją otworzy może uruchomić to makro lub kliknąć na guziczek na formularzu.
Pozdrawiam ;)Ten post został edytowany przez Autora dnia 29.08.13 o godzinie 20:04 -
Znalazłem w makrach akcję "ImportEksportArkuszaKalkulacyjnego" i już nie nadpisuje mi pliku, tylko go aktualizuje :)
Ale tak czy inaczej ciekaw jestem jak powinien wyglądać plik szablonu, który może być wykorzystany przy akcji "EksportZFormatowaniem".
Pozdrawiam -
Witam,
Nie wiem jak eksportować z Access'a, za pomocą kwerendy/makra do pliku Excel, ale tak aby ten plik się aktualizował a nie nadpisywał.
W Access'ie stosuję akcję "EksportZFormatowaniem" bez pliku szablonu (nie wiem jak taki plik powinien wyglądać), ale nie znalazłem eksportu bez formatowania :(.
W Access'ie 2003 nie miałem tego problemu i przez to nie traciłem formatowania.
Proszę o wskazówki i pomoc.
Dzięki i pozdrawiam -
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy VBA
-
Witam,
Potrzebuję wyeksportować kilka kolumn z MS Project (2010) do Excel'a, a pośród nich jest pole "Uwagi" do zadania. Problem polega na tym, że w trakcie eksportu obcinane jest to pole do 255 znaków. Czy i jak można wyeksportować całą treść z "Uwagi" do zadnia ?
Pozdrawiam -
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Administratorzy Windows
-
Jaki formularz należy wypełnić aby otrzymać tę płytę? W tej informacji brakuje do niego linku.
Pozdrawiam -
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Excel VBA
-
Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Excel VBA