Error 2471 al usar la función DCount
Al hacer un informe que genera problemas de matemáticas, quiero que se imprima solamente un registro, escogido de forma aleatoria. Para ello utilizo el siguiente código, pero me da error en la función DCount. En concreto el error 2471 (la expresión que ha especificado como parámetro de la consulta produjo el error 'aleatorio') .
La tabla tiene un campo autonumérico [Id], y otros campos más de texto: [primero], [segundo], [tercero]
Private Sub Report_Load()
Dim total As Integer 'Número total de registros en la tabla
Dim i As Integer 'Variable a usar en For Next
Dim aleatorio As Long 'Valor aleatorio que se generará
Dim registro As Integer 'total de registros donde [Id]=aleatorio
Dim Filtro As String 'Filtro que voy a utilizar
DoCmd.GoToRecord , , acLast
total = [Id] 'total=valor del último registro
For i = 1 To 3000 'Repito muchas veces hasta que la variable "aleatorio" coincida con el valor de un campo [Id]
Randomize
aleatorio = Int(Rnd * total + 1)
registro = DCount("[Id]", "Problemas_resta", "[Id] = aleatorio")
If registro <> 0 Then
Exit For
End If
Next
MsgBox aleatorio
'Filtramos el registro donde el campo [Id]=aleatorio
Filtro = "id LIKE aleatorio" ' Asignamos el filtro a la variable
Me.Filter = Filtro ' Asignamos la varaible a la propiedad Filter del subformulario
Me.FilterOn = True
End SubPor más vueltas que le doy, no consigue adivinar dónde está el problema. Sobre los filtros que hay más adelante, no sé si funcionan o tienen algún error.
1 Respuesta
Respuesta de Eduardo Pérez Fernández
1