Premetto, senza per questo voler dare 'consigli', che la tecnologia ADO è ormai in uso da quasi (più di) 5 anni, mentre noto che molti utilizzano ancora DAO, o il meno vetusto RDO. In tutti i casi dovresti fare un po' di chiarezza quando posti il codice. Nel frammento che hai postato non è evidente se miodb e miorst sono già dichiarati.
In tutti i casi, 'alfa = miorst' andrebbe scritto come :
codice:
  ..
 Set alfa = miorst  
  ..
sempre che il riferimento ad alfa sia dichiarato precedentemente, come ti suggerisce peraltro giustamente xegallo, ossia:

codice:
Dim x as Recordset 

Call apridb(x) 

....
....

Public Sub apridb(alfa As Recordset) 
Dim miodb as Database
Dim miorst as Recordset 
Set miodb = OpenDatabase("database.mdb") 
Set miorst = miodb.OpenRecordset("SELECT campo from tabella ", dbOpenDynaset) 
Set alfa = miorst 
' Comunque è più efficiente 
' Set alfa = miodb.OpenRecordset("SELECT campo from tabella ", dbOpenDynaset)
' al posto di 
' Set miorst = miodb.OpenRecordset("SELECT campo from tabella ", dbOpenDynaset) 
' Set alfa = miorst 


End Sub
Ciao,