Kwerenda działająca w ERP XL i w SQL Management Studio, ale wywalająca się po uruchomieniu z VB

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, obiekty COM .NET

Moderator: mikey

jns_pl
Posty: 6
Rejestracja: 14 lis 2019, 00:18
Rola: Użytkownik CDN XL
Wersja: 2019

Kwerenda działająca w ERP XL i w SQL Management Studio, ale wywalająca się po uruchomieniu z VB

Post autor: jns_pl »

Cześć,

Mam problem z uruchomieniem kwerendy z poziomu VBA - wywala mi błąd pt "Invalid columne name 'twr_kod'". Próbowałem uruchamiać to krokami (wywalając dane i joiny), ale dziala tylko wtedy, jak nie wrzuce zadnego polaczenia i i wyciagam dane z jednej tabeli. Albo raczej zanim dodam połączenie tranag z tranag (żeby wyszukać linki między FS/FSE z WZ/WZE).

Celem samej kwerendy jest utworzenie listy faktur (FS, FSE) wraz informacją, co zawierały. Większość faktur zawiera zarówno produkty, jak i usługi, stąd łączenie tranag z tranag.

Samo zapytanie wygląda tak:

Kod: Zaznacz cały

select
	[Data dokumentu]=format(dateadd(day,spi.trn_data2,'18001228'),'yyy-MM-dd'),
	[Miesiąc]=format(dateadd(day,spi.trn_data2,'18001228'),'MMMM'),
	[Numer dokumentu]=cdn.numerDokumentu(spi.trn_gidtyp, spi.trn_spityp, spi.trn_trntyp, spi.trn_trnnumer, spi.trn_trnrok, spi.trn_trnseria, spi.trn_trnmiesiac),
	[Klient]=knt_akronim,
	[Kod towaru] = twr_kod,
	[Kategoria]=case when left(twr_kod,1)='4' then 'Laminat zadrukowany' when left(twr_kod,1)='5' then 'Tuby' else 'Pozostała sprzedaż' end,
	[Średnica]=case when left(twr_kod,1) in ('1','2','3','4','5') then substring(twr_kod,5,2) else '' end,
	[Ilość] = tre_ilosc,
	[Cena jednostkowa]=case when tre_ilosc>0 then tre_ksiegowaNetto/tre_ilosc else 0 end,
	[Kwota netto] = ceiling(tre_ksiegowaNetto/tre_kursl*tre_kursm*100)/100,
	[Kwota brutto] = ceiling(tre_ksiegowaBrutto/tre_kursl*tre_kursm*100)/100,
	[Waluta]=tre_waluta,
	[Sprzedaż PLN]=tre_ksiegowaNetto
	from cdn.tranag Spi
	join cdn.kntkarty on spi.trn_kntnumer= knt_gidnumer
	join cdn.tranag ele on
	   case when ele.trn_SpiTyp<=0 then ele.trn_gidtyp else ele.trn_SpiTyp end = spi.trn_gidTyp --jeżeli dokument nie ma spinacza to ma się 'spiąć' z samym sobą
	   and case when ele.trn_SpiTyp<=0 then ele.trn_gidNumer else ele.trn_SpiNumer end = Spi.trn_gidNumer --jeżeli dokument nie ma spinacza to ma się 'spiąć' z samym sobą
	join cdn.traelem on ele.trn_gidnumer = tre_gidnumer 
	join cdn.twrkarty on tre_twrnumer = twr_gidnumer
	where spi.trn_trntyp in (3,20)
	order by spi.trn_data2, spi.trn_gidnumer, tre_twrlp
Wiecie może, z czego może wynikać błąd?

Generalnie samo połączenie ODBC jest skonfigurowane poprawnie - inne zapytania działają bez zarzutu.

A wolałbym te dane wyciągać z pomocą VBA, a nie wykresu, bo tak jest po prostu szybciej :)

Macie jakieś pomysły jak to rozwiązać?

Dzięki,
B

jns_pl
Posty: 6
Rejestracja: 14 lis 2019, 00:18
Rola: Użytkownik CDN XL
Wersja: 2019

Re: Kwerenda działająca w ERP XL i w SQL Management Studio, ale wywalająca się po uruchomieniu z VB

Post autor: jns_pl »

Dobra, poradziłem sobie. Przy okazji wyszło moje noobostwo. Wystarczyło założyć widok w db i odwolac sie do niego z vba :)

jns_pl
Posty: 6
Rejestracja: 14 lis 2019, 00:18
Rola: Użytkownik CDN XL
Wersja: 2019

Re: Kwerenda działająca w ERP XL i w SQL Management Studio, ale wywalająca się po uruchomieniu z VB

Post autor: jns_pl »

A teraz skapowałem, że wrzuciłem posty nie w tej kategorii, co trzeba :/ Wybaczcie pomyłkę...

ODPOWIEDZ