Como usar DELETE() con limites en VB6

Soy nuevo en el foro, pero me gustaría si me podes ayudar, estoy diseñando un programa en vb 6 con access, tengo una tbla temporal, la cual uso conectada a un msflexgrib, puedo agregar los datos al msfg y al mismo tiempo agrega a la tbla, estos datos pueden ser repetidos( los campos son cod_salida, cod_art y cantidad), hasta ahí bien, cuando uso el bt borrar, elimino una fila del msfg y y una fila de la tabla, aquí es donde tengo el problema, al usar el DELETE * from tabla, solo quiero que se borre una fila aunque hayan varias con los mismos datos, pero el delete me borra todos los datos que sean iguales en la tbla, ¿se puede limitar el delete a un solo registro aunque yahan varios iguales?, te adjunto el código que estoy utilizando, gracias
Private Sub borrar1()
Dim rs1 As ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs1.Open "Delete * where cod_art= '" & Me.MsfDetalle.TextMatrix(Me.MsfDetalle.Row, 0) & "'" & _
"AND cantidad = '" & CDbl(MsfDetalle.TextMatrix(Me.MsfDetalle.Row, 2)) & " ' ", nc, adOpenDynamic, adLockOptimistic
End Sub
Muchísimas gracias por la ayuda que me puedas brindar, si me he queivocado por favor guirme por el camino a segur
{"Lat":12.1421307739525,"Lng":-86.2643976509571}
Respuesta
1
La forma habitual de acotar cualquier tipo de consulta sql suele ser la siguiente
Delete * from tabla where clave_primaria = X.
El caso es que tu usas el código de artículo y la cantidad, pero entiendo que por algún motivo, tus artículos tienen más de una clave primaria... o bien el código está repetido por que no se ha restringido que sea único.
Si una sentencia de borrado no te borra el registro deseado es por que no has seleccionado toda la clave primaria, por que de hacerlo, estarías distinguiendo entre todos los elementos de la tabla.
De modo que cod_art y cantidad, por la razón que sea, no es lo suficientemente descriptivo para descartar otras filas.
Tal vez deberías revisar también si tu base de datos cumple las formas normales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas