Det är väl inget krux!
Skapa en array, redimma arrayen med antalet poster som du får i det första recordsetet.
Sedan loopar du igenom arrayen. Använd Ubound så vet du arrayens längd.
Glasklart?
6 svar · 311 visningar · startad av solbulle
VBA-kod i Excel.
Har idag en sql-fråga som ger mig kundnummer samt diverse fakta om kunden.
Nu vill jag från en annan databas hämta mer fakta, då med hjälp av kundnummret jag får fram i den tidigare frågan.
Hur göra detta bäst? Hämta allt i en loop? Hämta det ena först och sen det andra?
Kanske kan man skriva om frågorna?
Tips, ideer mottages tacksamt.
select dbi.kundnummer , namn, SUM(belopp), SUM(belopp) / (13 - 01 + 1), kategori from dbi, kund where vecka >= '2003'||'-'||'01' and vecka <= '2003'||'-'||'13' and dbi.kundnummer = kund.kundnummer and kund.grupp = '500' Group by dbi.kundnummer, namn, kategori
Resultatet av denna loopar jag sen ut:
Do While Not rs.EOF
Worksheets("blad").Range("A" & i).Value = CStr(rs(0))
Worksheets("blad").Range("B" & i).Value = CStr(rs(1))
'osv
i = i + 1
rs.MoveNext
Loop
Till detta vill jag i i "C"-kolumnen lägga till datat som denna sql-fråga ger:
select sum(belopp) from dbi, kund, stad where vecka >= '2003-01' and vecka <= '2003-13' and dbi.kundnummer = kund.kundnummer and kund.kundnummer = '10000' and kund.stad = stad.stad
Dessa sql-frågor byggs upp av värden i celler i ett excelark.
Kruxet är då, att kundnummret jag använder i denna fråga är det jag får ut i den första frågan, hur gör jag detta bäst?
Anledningen till två frågor är att de kopplar mot olika databaser.
Det är väl inget krux!
Skapa en array, redimma arrayen med antalet poster som du får i det första recordsetet.
Sedan loopar du igenom arrayen. Använd Ubound så vet du arrayens längd.
Glasklart?
Jo... det där verkar ju glasklart! :)
Får försöka få till det i VBA... det ska väl kunna gå.
Ok...
Nu har jag kommit en bit på väg, går lite över ån efter vatten...
Jag gör som så att jag skriver ut mina fakta sen hämtar jag området med de nya numren jag behöver och kör en loop för att få ut dom ett och ett.
Fast det som är riktigt illa egentligen är att först kör jag en databashämtning för att få alla grunddata, sen måste jag köra en hämtning för varje rad/post för att få ut den sista datan, det känns väldigt onödigt.
Så egentligen bör jag ju koncentrera mig på en omskrivning av mina sql-frågor.
OK, tittar inte in här så ofta...
Om uppgifterna ligger i olika databaser så är det ju inte så lätt att
lösa. Annars skulle det ju vara lätt att joina ihop tabellerna?
Du kanske kan länka databaserna?
Mina kunskaper sträcker sig inte så långt. Men det hela fungerar nu och frågan, "dne hela stora" körs inte så ofta så det ska nog fungera.
Det bästa vore givetvis att lägga tabellerna i en och samma databas men det helt utom min kontroll.
Tack för svaren.