Tengo confeccionado el siguiente procedimiento para borrar registros (en una base de batos access 2007, y programado en visual basic 2010), el cual me funciona bien, pero mi consulta es la siguiente: ¿Se puede hacer mas fácil? Por ejemplo buscar el primer registro,
o el último, o bien buscar el valor mínimo del campo puntos, ¿haciéndolo de otra manera sobraría la variable ConPuntos?.
Public Sub Eliminar()
Dim ConPuntos As Integer = 15000
'en la base de batos siempre son inferiores a esta cifra
NombreFinal = "'DUDU'" 'provisional para cambiar a otro lugar del programa
Try
Dim sql As String = "select count(*) from personas where nivel = " & NombreFinal
conn.Open()
Dim md As New OleDb.OleDbCommand(sql, conn)
CuentaRegistros = CType(md.ExecuteScalar, Integer) 'convertir el tipo de datos a integer
MsgBox("CuentaRegistros: " & CuentaRegistros)
If CuentaRegistros >= 10 Then
cmd.CommandType = CommandType.Text 'orden común para seleccion y borrado
cmd.Connection = conn 'orden común para seleccion y borrado
cmd.CommandText = "Select puntos, nivel From personas where nivel = " & NombreFinal
dr = cmd.ExecuteReader
While dr.Read
If dr(0).ToString < ConPuntos Then
ConPuntos = dr(0).ToString
End If
End While
dr.Close() 'CERRAR ExecuteReader
sql = "delete from personas where puntos = " & ConPuntos
cmd.CommandText = sql
cmd.ExecuteNonQuery()
End If
Catch ex As Exception
MsgBox(ex.ToString)
Finally
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End Try
End Sub
Un saludo, y gracias .
Alberto Sánchez