Estoy tratando de obtener el recuento de registros de una tabla, y si el conteo es mayor que 17, cree una nueva tabla.Recuento de registros en la tabla de acceso utilizando VBA
Dim rst As DAO.Recordset
strSQL = "Select * from SKUS"
Set rst = db.OpenRecordset(strSQL)
If rst.RecordCount > 17 Then
Set tdf = db.CreateTableDef("161-0363")
Set fld = tdf.CreateField("SKUS", dbText, 30)
tdf.Fields.Append fld
Set fld = tdf.CreateField("Count", dbInteger)
tdf.Fields.Append fld
db.TableDefs.Append tdf
End If
Este código no crea una nueva tabla, pero cuando cambio la sentencia if para esto, funciona:
...
If rst.RecordCount > 0 Then
Set tdf = db.CreateTableDef("161-0363")
...
Así que el RecordCount devuelve 1, pienso. ¿Por qué está pasando esto? Sé con certeza que la mesa tiene 18 filas.
¿Alguien puede ayudarme?
Oh tiene! Cuando agregué MoveLast, funcionó. ¡Gracias! – Shubham
Estaba usando una tabla vinculada y una vez que agregué .MoveLast funcionó bien. No tenía .MoveLast antes y funcionaba para cada tabla local pero no para una tabla vinculada. Nunca debería haber más de 300 en mi mesa. Sé que deberías hacer más consultas menos vba pero esto funciona por ahora. Gracias. – RazorSky