sempre con gli array.
La filosofia del metodo non cambia di molto.
Credo resti più chiaro il secondo metodo.
Provo a indicare la strada, ma scrivere tutto il codice mi sembra esagerato.

Ricavi il recordset.
Naturalmente conosci l'identificativo della foto selezionata
idFotoSelezuinata

puoi fare un ciclo do while loop e ti ricavi l'array
esempio
i = 1
Do while not rs.Eof
mioarray(i) = rs(codiceFoto)
If mioarray(i) = idFotoselezionata Then
strIdNext = mioarray(i + 1)
strIdBack = mioarray(i - 1)
End if
i = i + 1
rs.moveNext
loop

in questo modo dovresti ricavarti esattamente la successiva e la precedente. è un bel po che non uso gli array, ma quell'operazione approssimativa sull'indice dovrebbe andare. Fai delle prove o attendi consigli migliori...