Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Eliminar de un flexgrid

Estas en el tema de Eliminar de un flexgrid en el foro de Visual Basic clásico en Foros del Web. Hola, soy un principiante en vb(como se daran cuenta al leer esto). Si, ya se que esto es algo muy básico y de lo cual ...
  #1 (permalink)  
Antiguo 16/06/2007, 21:21
Avatar de Virus Acido  
Fecha de Ingreso: junio-2007
Mensajes: 11
Antigüedad: 16 años, 10 meses
Puntos: 0
Eliminar de un flexgrid

Hola, soy un principiante en vb(como se daran cuenta al leer esto). Si, ya se que esto es algo muy básico y de lo cual podria encontrar informacion buscando, de hecho eso hice:

Resulta que tengo un msflexgrid que muestra una base de datos access, y lo que quiero es eliminar la fila que yo seleccione con el mouse o escribiendo el Id del registro en un textbox(cuaquiera de los 2 sirve).

El problema es que el actual codigo que tengo solo elimina la ultima fila y no la que yo quiero:
Código:
MSFlexGrid1.RemoveItem (MSFlexGrid1.Rows)
Ahora tambien tengo otro:

Código:
Dim Cnn As ADODB.Connection
Dim Rst As ADODB.Recordset

Private Sub Command1_Click()

With MSFlexGrid1
    
    If .Row <= 0 Then
       MsgBox " No hay ninguna fila seleccionada para eliminar ", vbExclamation
       Exit Sub
    End If
   
    El_Dato = .TextMatrix(.Row, 1)
    
    Sql = "DELETE * FROM " & Clientes & " WHERE " & cod & "=" & El_Dato

    If MsgBox("Eliminar el Registro ?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
       
        Cnn.Execute Sql
    
        .Redraw = False
        
        Set .DataSource = Nothing
        
        Rst.Requery
    
        Set .DataSource = Rst
        
        .Redraw = True

End With

End Sub

Private Sub Form_Load()

Dim path_bd As String

path_bd = App.Path & "\mibd.mdb"

With MSFlexGrid1
   
    Set Cnn = New ADODB.Connection
  
    Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                       path_bd & ";Persist Security Info=False"
  
    Set Rst = New ADODB.Recordset
 
    Rst.Open "DELETE FROM CLIENTES ", Cnn, _
              adOpenDynamic, adLockBatchOptimistic, adCmdText

    Set .DataSource = Rst
  
    .SelectionMode = flexSelectionByRow
    
    Command1.Caption = " Eliminar registro "
    
End With
End Sub
La tabla es "clientes" y el campo es "cod".

Y claro, aca me bota el siguiente error:
" Error de sintaxis (falta operador) en la expresión de consulta 'cod & =' ".
Puedo suponer que se refiere a que le envio algo que no existe, pero en ese caso quisiera saber que es.

En fin, si alguien pudiese darme un codigo y explicarmelo, o corregir el que puse, se lo agradeceria muchisimo.
  #2 (permalink)  
Antiguo 18/06/2007, 01:43
 
Fecha de Ingreso: junio-2007
Mensajes: 24
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Eliminar de un flexgrid

Hola:
En la instruccion que pones, creo que no es la correcta, deberia ser:
Sql = "DELETE * FROM Clientes WHERE cod =" & El_Dato
Ya que Clientes al ser el nombre de la tabla es un literal y Cod es el nombre del campo que tambien es un literal, lo que va fuera del literal es la variable El_Dato, espero que te funcione

Saludos
Ana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:08.