MMORPG.pl
https://mmorpg.pl/

VBA SQL i recordy
https://mmorpg.pl/viewtopic.php?f=18&t=41156
Strona 1 z 1

Autor:  candidoser [ 13 cze 2012, 10:23 ]
Tytuł:  VBA SQL i recordy

Sprawa wyglada tak: wyciagam dane z dwoch roznych baz danych. Zapisuje to do dwoch Recordset. Teraz chcialbym znalezc wszystkie pozycje z drugiego rekordu, ktore nie wystepuje w pierwszym. Oczywiscie mozna to zrobic w petli porownujac kazda pozycje, ale pewnie da sie to zrobic za pomoca SQL (jakis JOIN?). Nie wiem tylko jak operowac SQL-em na rekordach.
Calosc w VBA.

Autor:  kamilus [ 13 cze 2012, 11:17 ]
Tytuł:  Re: VBA SQL i recordy

SELECT * FROM baza1.ab WHERE val NOT IN (SELECT val FROM baza2.ab WHERE 1)

Zakładam, że możesz w VBA wykonywać zapytania SQL. Nie wiem jak to generalnie w VBA działa, bo nie korzystałem nigdy, ale jeśli możesz operować na SQL to to da radę.

Możliwe, że będziesz musiał jeszcze pokombinować z połączeniami i jeśli bazy stoją na oddzielnych maszynach to będzie to troszkę trwało.

Takie rozwiązanie na szybko. Pewnie da się to zrobić wydajniej, ale... przedstawię to w formacie pseudokodu, bo VBA nie znam:
Kod:
$rowset = query(SELECT val FROM baza2.ab WHERE 1);
while($rowset) {
 $array.add($rowset.val);
 if(!$rowset.first) $string = $string + ',' + $rowset.val;
 else $string = $rowset.val;

}
query(SELECT val FROM baza1.ab WHERE val NOT IN ($string));


Autor:  candidoser [ 13 cze 2012, 15:32 ]
Tytuł:  Re: VBA SQL i recordy

Dzieki. Co prawda kod nie jest dla mnie do konca jasny, ale chyba dzieki temu wpadlem na pewien pomysl.

Autor:  Loki [ 15 cze 2012, 17:42 ]
Tytuł:  Re: VBA SQL i recordy

albo left join i sprawdzasz ktore zwracane z drugiej tabeli sa nullem.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group | Copyright © 2001-2012 MMORPG.pl Team