Momentaneamente ho risolto cosi' ...

codice:
Private Function calcola_fi(ByVal limite As Integer) As IntegerDim dbConn1 As New OleDbConnection(stringaconn)
        Dim re As Integer
        dbConn1.Open()
        Dim dbAdapter_fi As New OleDbDataAdapter("select * from FI where FIimp >= " & limite, dbConn1)
        Dim dbAdapter_rg As New OleDbDataAdapter("select * from RG", dbConn1)
        Dim dbDataSet_fi As New DataSet
        Dim dbDataSet_rg As New DataSet
        dbAdapter_fi.Fill(dbDataSet_fi)
        dbAdapter_rg.Fill(dbDataSet_rg)




        For Each fi_ro As DataRow In dbDataSet_fi.Tables(0).Rows
            
            Dim dbAdapter_tmp As New OleDbDataAdapter("select distinct (RGcod) from RG where RGimp >= " & limite & " and RGcat <> 950 and RGcat <> 399 and RGdatadel >= #" & CDate(datavi.Text) & "# and RGcod = " & fi_ro.Item("FIcod"), dbConn1)
            Dim dbDataSet_tmp As New DataSet
            dbAdapter_tmp.Fill(dbDataSet_tmp)
            If dbDataSet_tmp.Tables(0).Rows.Count > 0 Then
             
                re = re + 1


            End If
            calcola_fi = re


        Next


        dbConn1.Close()
soluzione che funziona ma che molto lenta .....

Qualcuno sa aiutarmi a velocizzare questa ricerca ?

Grazie