none
cantidad de registros en una tabla RRS feed

  • Pregunta

  • Deseo saber la cantidad de registros que contiene una tabla de access, que se conecta a visual basic 2010.

    en visual basic 6 es por ejemplo dr.RecordCount.

    Necesito saber este dato  para eliminar registros cuando la tabla contenga mas de 10, (la eliminación se haría en función de un campo Integer, empezando por los mas pequeños.

    Muchas gracias 

    Alberto Sánchez

    martes, 25 de junio de 2013 15:36

Todas las respuestas

  • Si cargas la tabla en un datatable seria datatable.Rows.Count

    Cómo te conectas al access?? Haces un count()??

    Entonces en el objeto command.ExecuteScalar() --> haz esto para obtener el count() de la tabla a través de una sentencia SQL. Convierte el dato devuelto de ExceuteScalar a int o Integer y verifica que no sea null o Nothing


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    martes, 25 de junio de 2013 15:42
  • hola

    y si ejecutas la query

    SELECT COUNT(*) FROM NombreTabla

    con eso usando

    Dim sql As String = "SELECT COUNT(*) FROM <Tabla>"
    
    Using conn As New OleDbConnection("connection string")
    	conn.Open()
    
    	Dim cmd As New OleDbCommand(sql, conn)
    
    	Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())
    End Using

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 25 de junio de 2013 15:47
  • Gracias por tu respuesta y por la prontitud que la realizas.

    En visual basic 6, estoy bastante preparado y puedo aconsejar en la programación, pero en Visual basic 2010 me haría falta un libro para consultar, pero no se cual me sería de utilidad -lo necesito un poco avanzado-, he empezado hace poco con ello, pero de momento me voy apoyando en los conocimientos de VB6, aunque difiere bastante.

    En el momento que lo pruebe te contestaré, de momento  veo e intuyo que me va a servir. Te avanzo esta nota para que sepas que he recibo tu notificación, bueno...... no me paro mas en ello hasta que desarrolle otra cosa que tengo en mente, antes de que se me vaya lo que tengo pensado.

    Un saludo

    alberto Sánchez 

    miércoles, 26 de junio de 2013 15:16
  •      Public conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=TABLA.accdb;Persist Security Info=False")
        Public cmd As New OleDb.OleDbCommand
        Public dr As OleDb.OleDbDataReader          'no lleva New
        Public SQL As String = ""
        Public PuntosFinales As Integer
        Public NombreFinal As String
        Public Situacion As Integer                         'Cuenta los registros y Da el orden en la clasificación
        Public OrdenLugar As String                         'Situa el nombre en el puesto corresponduente
        Public NivelFinal As String
        Public conectado As Boolean

      Public Sub Eliminar()
            Dim sql As String = "SELECT COUNT(*) FROM <Tabla>"

            Using conn As New OleDbConnection("connection string") 'en esta línea da error
                conn.Open()

                Dim cmd As New OleDbCommand(sql, conn)

                Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())
            End Using
        End Sub

    Tengo confeccionado un modulo con unas variables públicas y varios procedimientos, de los cuales uno es que que me has enviado y que da error en OleDbConnection, dice que este tipo no está definido.

    al mismo tiempo me interesaría poner algo así:   Dim sql As String = "SELECT COUNT(*) FROM <Tabla> where nivel = " & '"DUDU"'

    Un saludo

    Alberto Sánchez


    miércoles, 26 de junio de 2013 18:40
  • Hiciste Imports System.Data al principio de tu modulo?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    miércoles, 26 de junio de 2013 18:50
  • El visual basic 6 lo domino bastante bien, pero el visual  basic 2010 que difiere mucho del otro, soy un novato, por tanto no dudo de buena voluntad, pero para mi es insuficiente tu explicación.

    De todas las maneras te agradezco eternamente que hayas intervenido y tan prontamente.

    Recibe un cordial saludo

    Alberto Sánchez

    sábado, 29 de junio de 2013 10:54
  • Muchas gracias Leandro. Me resolviste el problema que tenía: Leer la cantidad de registros en una base access con OLEDB. El código que usé es el siguiente (por si alguien tiene la misma duda que yo):

    Public con As OleDbConnection 'Esto va en las declaraciones, antes de cualquier Sub o Function

        Public Function Cuenta_Registros_Tabla()
            Dim sql As String = "SELECT COUNT(*) FROM CLIENTES"
            Dim Contador As Integer = 0

            Using con As New OleDbConnection("Provider=microsoft.ACE.OLEDB.12.0; Data Source=F:\BD\Carteras.mdb")
                con.Open()

                Dim cmd As New OleDbCommand(sql, con)

                Contador = Convert.ToInt32(cmd.ExecuteScalar())
            End Using
            dr.Close()
            Return (Contador)
        End Function

    lunes, 29 de febrero de 2016 23:05
  • Excelente. Muchas gracias Leandro!, todo un crack.
    jueves, 6 de diciembre de 2018 4:06