Visual Basic - Codigo delete, no elimina los registros correspondientes.

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Codigo delete, no elimina los registros correspondientes.

Publicado por eugenia (11 intervenciones) el 23/12/2013 15:55:13
Hola, tengo problemas para eliminar datos de una consulta desde visual basic a access, es decir que une 2 tablas.
La consulta esta compuesta por las tablas:
Paciente
DNI-paciente
nombre
etc

Diagnostico
DNI
id diag
fecha
conclusión.

A traves de la consulta selecciono un DNI (proveniente de DNI-paciente) y muestra el nombre, pero agrega el DNI de la tabla diagnostico.

Ya he echo un Insert y funciona correctamente,pero no pasa lo mismo con mi "Delete" ya que no elimina el diagnostico actual, sino cualquier otro de manera random. Este es el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim rs As New ADODB.Recordset
 
rs.Open "select *from diagnostico", cn, adOpenDynamic, adLockPessimistic
rs.MoveNext
 
rs!DNI = Combo1.Text
rs!fecha = Text5.Text
rs!conclusion = Text2.Text
rs!tipodeestudio = Combo2.Text
rs!ano = Text3.Text
rs!estomago = Text4.Text
 
rs.Delete
rs.MoveNext
rs.Close
 
MsgBox ("Diagnostico eliminado")

Gracias por sus respuestas.
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Codigo delete, no elimina los registros correspondientes.

Publicado por Carlos Alberto (262 intervenciones) el 09/01/2014 15:16:55
Hola Eugenia, prueba esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim rs As New ADODB.Recordset, sSql as string
 
rs.Open "select * from diagnostico where DNI = " &  Combo1.Text, cn, adOpenDynamic, adLockPessimistic
if not rs.eof then
  sSql = "DELETE FROM Diagnostico WHERE DNI = " & rs!DNI ''ASUMO QUE ESTE DATO ESNUMERICO
  sSql= sSql & " and fecha = '#" & FORMAT(Text5.Text, "dd/MM/yyyy") & "#'" ''ASUMO QUE ESTE CAMPO ES DE TIPO FECHA
  sSql= sSql & " and conclusion = '" & Text2.Text & "'"
  sSql= sSql & " and tipodeestudio = '" & Combo2.Text & "'" ''ASUMO QUE ESTE DATO ES VARCHAR O TEXTO
  sSql= sSql & " and ano = " & VAL(Text3.Text) ''ASUMO QUE ESTE DATO ES NUMERICO
  sSql= sSql & " and estomago = '" & Text4.Text & "'" ''ASUMO QUE ESTE DATO ES VARCHAR O TEXTO
end if
rs.close
 
if len(trim(sSql))>0 then
 rs.open sSql
 MsgBox ("Diagnostico eliminado")
end if
 
if rs.state = 1 then ''con esto preguntas si el recordset esta abierto
 rs.close
end if

Espero te sirva cualquier cosa me cuentas y con gusto te ayudo.
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