resultou!! antes de mais quero agradecer a voces pela ajuda já consegui obter resultado certo desta forma: ---- rs02.open "SELECT count(tabela1.id) AS total FROM tabela1 WHERE tabela1.id=100 UNION ALL SELECT count(tabela2.id) as total FROM tabela2 WHERE tabela2.id=100 UNION ALL SELECT count(tabela3.id) as total FROM tabela3 WHERE tabela3.id=100 UNION ALL SELECT count(tabela4.id) as total FROM tabela4 WHERE tabela4.id=100 UNION ALL SELECT count(tabela5.id) as total FROM tabela5 WHERE tabela5.id=100", conn, 1, 3 total = 0 Do while not rs02.eof total = total + rs02("total") rs02.movenext loop ---- estava faltando a tabela antes do campo: tabela1.id reparem o tempo que leva a processar: tempo1: 1.5 seg. tempo2: 1.8 seg. tempo3: 2.9 seg. tempo4: 1.4 seg. tempo5: 1.3 seg. Da outra forma que eu tinha, assim, com 5 chamadas: --- rs02.open "SELECT count(id) AS total1 FROM tabela1 WHERE id=100", conn, 1, 3 total1 = rs02("total1") rs02.close rs02.open "SELECT count(id) AS total2 FROM tabela2 WHERE id=100", conn, 1, 3 total2 = rs02("total2") rs02.close rs02.open "SELECT count(id) AS total3 FROM tabela3 WHERE id=100", conn, 1, 3 total3 = rs02("total3") rs02.close rs02.open "SELECT count(id) AS total4 FROM tabela4 WHERE id=100", conn, 1, 3 total4 = rs02("total4") rs02.close rs02.open "SELECT count(id) AS total5 FROM tabela5 WHERE id=100", conn, 1, 3 total5 = rs02("total5") rs02.close total = total1 + total2 + total3 + total4 + total5 --- demorava: tempo1: 1.9 seg. tempo2: 2.9 seg. tempo3: 2.3 seg. tempo4: 1.6 seg. tempo5: 2.1 seg. O que quando registos muito grandes (neste caso eram apenas 100) nota-se bem a diferenca de tempo e performance. muito obrigado pela ajuda! nuno.