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 Sub
Por 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