Código:
Private Sub Form_Current()
'Creas un Recordset (especie de tabla virtual)
Dim rs As New ADODB.Recordset
'Texto que guardará la sentencia Sql que recupera los datos
Dim Sql As String
'Sentencia SQL recupera los 12 registros
Sql = "SELECT TOP 12 nombre, img from tablaimagenes;"
'Abrimos el Recordset con la sentencia anterior por lo que tendrà los 12 registros
rs.Open Sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'Recorremos los 12 registros y mostramos las fotos y nombres
For i = 0 To 11 'Solo 11!!! 0 + 11 =12
If (Not IsNull(rs!img)) Then
Me("imagen" & i).Picture = rs!img
Me("nombre" & i) = rs!nombre
Else
Me("imagen" & i).Picture = "C:\FOTOS\NOFOTO.JPG"
Me("nombre" & i) = ""
End If
'Vamos al seguiente registro de rs
rs.MoveNext
'Pasamos al siguiente grupo Imageni/Nombrei
Next i
End Sub
Necesitas un formulario con 12 imagenes que tengan por nombre Imagen0, Imagen1,...,Imagen11 y 12 campos de texto que se llamen Nombre0,...,Nombre11 situados al pie de la correspondiente imagen.
En el origen de datos del formulario no pones NADA!!!
Y en el codigo de la propiedad del formulario "al activar registro" copias el codigo que te paso arriba una vez corregida la sentencia Sql para que se ajuste a tu tabla (te marco en rojo lo que seguramente tendras que cambiar)
Quim