problema il prg A deve lanciare in shell asincrona il prg b

perciò il prg A esegue:
codice:
        sQuery = "SELECT 1 FROM DEPO.VSCWCOT1 WHERE FLGSTATO = '1' with ur"
        Set rs = OpenRecordset(sQuery)
        If Not (rs.EOF And rs.BOF) Then
            Call Shell("c:\sorter\exe\xpa.exe /c " & PrgParam(0) & _
                                            " /a " & PrgParam(1) & _
                                            " /d " & PrgParam(2), vbNormalFocus)
        End If
        rs.Close
        Set rs = Nothing
il tutto funziona il programma B parte e fa correttamente il suo lavoro, il problema è che la funzione shell mi ritorna il controllo al prg A dopo un tempo considerevole 1-2 secondi. esiste un modo per velocizzare questa chiamata