• Lunes 23 de Diciembre de 2024, 02:40

Autor Tema:  Re: wallace  (Leído 909 veces)

wallace

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: wallace
« en: Jueves 4 de Septiembre de 2003, 22:38 »
0
Hola a todo, ahora tengo otro problemita mi programa esta ligado a una base de datos con diferentes usuarios y utilizo un folio para inentificar los datos de cada uno de ellos y me pidieron que este folio se concatenara con el numero de usuario por ejemplo yo soy el 4038y el folio es 001 = a 4038 esto ya lo hago pero ahora no se como borrar datos que pertenescan a esta usuario es decir que borre el último regisro del usuario 4038
4038001 al 4938006 me borre el 4038006 pero pero tambien puede estar introduciendo datos el 3690006.

Espero y me entiendan.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: wallace
« Respuesta #1 en: Viernes 5 de Septiembre de 2003, 08:37 »
0
Hola wallace.
Si no entiendo mal, tú problema es que quieres eliminar un registro/s de un grupo que identifican a un usuario... Puedes utilizar la/s correspondiente/s sentencia/s SQL (sql/400, por supuesto).

Si quieres eliminar todos los registros del usuario 4038 y el campo es CARÁCTER:
DELETE From Tabla1 WHERE LEFT(CampoX, 4) = '4038'

Si quieres eliminar todos los registros del usuario 4038 y el campo es NUMÉRICO:
DELETE From Tabla1 WHERE LEFT(DIGITS(CampoX), 4) = '4038'

Si quieres eliminar el último de los registros y SABES CÚAL ES EL MAYOR nº DE FOLIO (con campos numéricos):
DELETE From Tabla1 WHERE LEFT(DIGITS(CampoX), 4) = '4038' AND RIGHT(DIGITS(CampoX), 3) = '006'

Si quieres eliminar el último de los registros y NO SABES CÚAL ES EL MAYOR nº DE FOLIO (con campos numéricos):
'Primero obten en un recordset los registros ordenados del usuario:
Set rs1 = cmd1.Execute("SELECT From Tabla1 WHERE LEFT(DIGITS(CampoX), 4) = '4038' ORDER BY CampoX
'Posiciónate en el último registro (si los hubiera, claro):
rs1.MoveLast
'Ahora elima el registro:
cmd1.Execute "DELETE FROM Tabla1 WHERE CampoX =" & rs1.Fields("CampoX").Value

Espero que con estos ejemplos arregles. Suerte.

wallace

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
wallace
« Respuesta #2 en: Viernes 5 de Septiembre de 2003, 16:46 »
0
'Listo muchas gracias por la ayuda lo hice un poco diferente
        'pero ya hace lo que quiero.
        'Solución:
        Set RS = BASE.OpenRecordset("SELECT * FROM DBGrid WHERE folio ='" & RptGasto.lblfolio.Caption & "'")
        RS.FindLast "folio='" & Trim(RptGasto.lblfolio.Caption) & "'"
        RS.MoveLast
        RS.Delete
        MsgBox "Se borro el último registro.", vbInformation, "Datos"