Resolver error en consulta access

Cordial saludo

Recientemente me ayudaste con una consulta en el que me enviaste el siguiente código

Public Function fncAsistio(Id As Long) As Long
Dim rst As DAO.Recordset
Dim miSQL As String
Dim i As Integer
miSQL = "SELECT * FROM Tabla1 WHERE Id=" & Id
Set rst = CurrentDb.OpenRecordset(miSQL, dbOpenDynaset)
fncAsistio = 0
For i = 1 To 2 'Numero de campos fecha (en este ejemplo 2: 12/08/ y 19/08)
'Como el primer campo fecha es el 3º, y el primero para access es el 0
'le sumamos 1 a i, para que empiece en el 3º campo (12/08/13)
If rst(1 + i) = "Asistió" Then fncAsistio = fncAsistio + 1
Next i
End Function


Mi pregunta es: cuando declaras la variable fncAsistio donde el "(id As long)" me está generando un error ya que el id tiene que ser texto pues tengo un formulario con código que usa este campo de la tabla (que para nuestro caso seria Tabla1) y trae información para mostrarlo en el mismo formulario, por eso el campo Id es necesario que sea texto. ?Cómo puedo hacer para generar la consulta teniendo el campo Id como texto?

Gracias de nuevo por tu tiempo y espero haber sido claro

1 respuesta

Respuesta
1

Por lo que comentas, tu campo Id en la tabla lo tienes definido como texto, y no como numero o autonumérico como yo supuse.

Pues bien, sólo tienes que hacer un pequeño ajuste en la función (te pongo los cambios en negrita):

Public Function fncAsistio(Id As String) As Long
Dim rst As DAO.Recordset
Dim miSQL As String
Dim i As Integer
miSQL = "SELECT * FROM Tabla1 WHERE Id='" & Id & "'"
Set rst = CurrentDb.OpenRecordset(miSQL, dbOpenDynaset)
fncAsistio = 0
For i = 1 To 2 'Numero de campos fecha (en este ejemplo 2: 12/08/ y 19/08)
'Como el primer campo fecha es el 3º, y el primero para access es el 0
'le sumamos 1 a i, para que empiece en el 3º campo (12/08/13)
If rst(1 + i) = "Asistió" Then fncAsistio = fncAsistio + 1
Next i
End Function

Ya me dirás si esto resuelve el problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas