Eso nada mas es una parametrizacion, por cada ? existe un param, es una forma mas de trabajar un recordset, pero en si quieres lo puedes omitir y pasarle la variable a tu recordset, como estas acostumbrado:
qry = "SELECT nombre FROM tbl_estudiantes WHERE estudiante_id = " & variable
Y nada mas le quitas todo el show del cmd.Parameter
Que de hecho viendo el ejemplo, esta mal
Set param = cmd.CreateParameters("estudiante_id",
adVarchar, adParamInput, intID)
Si es un tipo de dato entero, deberia recibir un adInteger, pero te repito, si quieres tu puedes abrir tu rs pasandole directamente la variable a la SQL
Salu2,