Visual Basic - ELIMINAR FILA SELECIONADA EN UN DATAGRID

Life is soft - evento anual de software empresarial
 
Vista:

ELIMINAR FILA SELECIONADA EN UN DATAGRID

Publicado por harold_m (24 intervenciones) el 10/05/2010 20:42:42
QUE LINEA DE CODIGO DEBO COLOCAR EN UN BOTON PARA ELIMINAR UNA FILA SELECIONADA EN TIEMPO DE EJECUCION Y QUE LA BASE DE DATOS SE ACTUALIZE DE UNA VEZ.

MUCHAS GRACIAS......

HAROLD M
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ELIMINAR FILA SELECIONADA EN UN DATAGRID

Publicado por Pedro Luis (128 intervenciones) el 11/05/2010 08:14:59
El comando sería Delete pero como no dices como tienes abierta la base de datos habrá que inventar.
Si es un Recordset seria mirecorset.Delete, después algo asi como mirecordset.Movenext, cuidado con los fines de fichero.
Si es una parrilla asociada a un datacontrol Data1.Recordset.Delete y a continuacion data1.Refresh.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ELIMINAR FILA SELECIONADA EN UN DATAGRID

Publicado por harold_m (24 intervenciones) el 12/05/2010 00:24:38
es un control ado como te puedes dar cuenta
debo colocar un boton el cual debe ser para eliminar, la fila selcionada.
ademas no se cuando le doy filtrar por fecha me sale NO SE PUEDE ABRIR EL FILTRO y no se pues el formato de la BD est apara fechas, si me puedes colaborar con esto te agradezco.

HMO





Option Explicit

'*********************************************************************
' -- Filtrar Datagrid con el control Ado
' -- En el combobox cargar los campos de la tabla
'*********************************************************************

' \\ Declaraciones Apis ( para el manifest y los temas de windows)
' ------------------------------------------------------------------------------------------
Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
Private Declare Sub InitCommonControls Lib "Comctl32" ()

Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Form_Initialize()
Call SetErrorMode(2)
Call InitCommonControls
End Sub

Private Sub Adodc1_Error( _
ByVal ErrorNumber As Long, _
Description As String, _
ByVal Scode As Long, _
ByVal Source As String, _
ByVal HelpFile As String, _
ByVal HelpContext As Long, _
fCancelDisplay As Boolean)

'Aquí es donde puede colocar el código de control de errores
'Si desea pasar por alto los errores, marque como comentario la siguiente línea
'Si desea detectarlos, agregue código aquí para controlarlos
MsgBox " DEscripción del Error :" & Description
End Sub

Private Sub Adodc2_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
' -- Esto mostrará la posición de registro actual para este Recordset
Adodc1.Caption = " Registro actual: " & CStr(Adodc1.Recordset.AbsolutePosition)
End Sub

Private Sub Adodc2_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

' -- Aquí se coloca el código de validación
' -- Se llama a este evento cuando ocurre la siguiente acción
Dim bCancel As Boolean
Select Case adReason
Case adRsnAddNew
Case adRsnClose
Case adRsnDelete
Case adRsnFirstChange
Case adRsnMove
Case adRsnRequery
Case adRsnResynch
Case adRsnUndoAddNew
Case adRsnUndoDelete
Case adRsnUndoUpdate
Case adRsnUpdate
End Select

If bCancel Then adStatus = adStatusCancel
End Sub

Private Sub Form_Load()

' -- Configurar el Control ADO
With Adodc1
' -- establecer el tipo de Comando ( Consulta SQL )
.CommandType = adCmdText
' -- Asignar la consulta Sql ( seleccionar la tabla de la base de datos de agrodinco)
.RecordSource = "Select * From REPORTE_DIA"
' -- refrescar el control
.Refresh
' -- Asignar el recordset al datagrid
Set DataGrid1.DataSource = Adodc1.Recordset
' -- Selecionar el Grid por fila
DataGrid1.MarqueeStyle = dbgHighlightRowRaiseCell

' -- Ocultar el control ADODC
.Visible = False

End With
Text1 = ""




' With Adodc1.Recordset
' Dim total As Long



' Do While Not .EOF
' total = total + !cantidad_entrante

' .MoveNext
' Label2.Caption = total

' Loop


' End With



End Sub

' -----------------------------------------------------------------------------
' \\ -- Filtrar los datos del control dataGrid al escribir en la caja de texto
' -----------------------------------------------------------------------------
Private Sub Text1_Change()
On Error GoTo error_Handler
With Adodc1
If Text1 <> "" Then
' -- Fltrar por el campo especificado en Combo1
.Recordset.Filter = Combo1 & " LIKE '*" + Text1 + "*'"
' -- Enlazar el Grid con el recordset
Set DataGrid1.DataSource = Adodc1.Recordset

Else
' Limpiar el Filtro
.Recordset.Filter = ""
End If
' -- Refrescar el control ADO
.Refresh
End With


Exit Sub
' -- errores
error_Handler:
' -- Este error se produce al buscar en un campo que no existe
If Err.Number = 3265 Then
MsgBox "el campo seleccionado no es válido", vbCritical
Else
MsgBox Err.Description, vbCritical
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ELIMINAR FILA SELECIONADA EN UN DATAGRID

Publicado por Pedro Luis (128 intervenciones) el 12/05/2010 09:06:18
Como he dicho ya algunas veces, este debe ser el foro DAO, pues el siguiente es el ADO, y me alegro de no haber pasado a ADO visto el lio que has armado para hacer un detalle.
Te pongo a continuación un ejemplo real de parrillas.

Hay varios botones y el nº 11 hace esto

Case 11 ' Borrar Especie
If ModPar <> "S" Then Exit Sub
If Data1.Recordset.AbsolutePosition < 0 Then
MsgBox ("Para Borrar tiene que haber algo marcado")
Exit Sub
End If
Data1.Recordset.Delete
Data1.Refresh

Private Sub Form_Load()
Data1.RecordSource = "Select * From Parcelas where Vivero=" & Viv!Vivero & " and Codigo=" & Mivar & " order by NumPar"
Data1.Refresh
End Sub

En el caso de querer un rango por fechas se pondría en el Select, teniendo en cuenta que las fechas entre # y el formato americano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar