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:
Ahora tambien tengo otro:MSFlexGrid1.RemoveItem (MSFlexGrid1.Rows)
Código:
La tabla es "clientes" y el campo es "cod".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
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.