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

delete

Estas en el tema de delete en el foro de Visual Basic clásico en Foros del Web. Hola, a ver si me pueden ayudar Tengo en access una tabla con 50 o mas registros en un solo campo en un Form de ...
  #1 (permalink)  
Antiguo 24/05/2005, 15:29
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
delete

Hola, a ver si me pueden ayudar

Tengo en access una tabla con 50 o mas registros en un solo campo
en un Form de vb6 tengo un textbox y con un inputbox pregunto el numero de folio. Lo que necesito es que al momento de introducir el numero de folio al textbox cheque en la bd de access si esta y si esta que lo elimine y si no que mande un mensaje.

Gracias por su ayuda

Fernando
  #2 (permalink)  
Antiguo 24/05/2005, 15:42
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Te Sugiero que lo hagas con consultas:

DELETE FROM tabla WHERE campo = valor

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #3 (permalink)  
Antiguo 24/05/2005, 16:08
 
Fecha de Ingreso: abril-2005
Mensajes: 137
Antigüedad: 19 años
Puntos: 0
mmmmmmmmm

Cita:
Iniciado por reel
Te Sugiero que lo hagas con consultas:

DELETE FROM tabla WHERE campo = valor

Saludes

si hace eso como puede verificar si el valor del campo existe???
primero debe hacer la consulta:
Dim RsRegistros As ADODB.Recordset
Dim SQL As String

Set RsRegistros = New ADODB.Recordset
SQL = "Select * From Tabla Where campo = " & valor
o
SQL = "Select * From Tabla Where campo = ' " & valor & " ' "
(si se trata de un campo string)
RsRegistros.Open SQL, Conexion. adOpenStatic
If RsRegistros.Recordcount = 0 Then
(Si no hay el registro)
msgbox "No existe el registro"
Else
SQL = "Delete Tabla Where Campo = " & valor
o
SQL = "Delete Tabla Where Campo = ' " & valor & " ' "
Conexion.Execute SQL
End If

asi verificas que haya el registro y si existe pues recien lo eliminas no?
  #4 (permalink)  
Antiguo 24/05/2005, 16:38
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Cuando haces una consulta Delete siempre te retorna la cantidad de registros afectados, por lo tanto si no existe la cantidad de registros afectados es "cero", por eso fue que me limite a poner solomente eso.

Te ahora un poco de código, pero tienes razón marcocho2005 tu solución es mas comprensible.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #5 (permalink)  
Antiguo 25/05/2005, 08:26
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
delete

Muchas Gracias por su ayuda y su interes, la probare en cuanto llegue a casa.
  #6 (permalink)  
Antiguo 25/05/2005, 10:17
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
delete

Ya hice la prueba pero me marca un error en tiempo de ejecucion "SE REQUIERE DE UN OBJETO"
Anexo mi codigo para que por favor me chequen que estoy haciendo mal


Private Sub Option3_Click()
If Option3.Value = True Then
Text73.Text = "X"
Text71.Text = ""
Text72.Text = ""
Text1.Text = InputBox("NUMERO DE FOLIO")

Dim RsFOLIOS As ADODB.Recordset
Dim SQL As String
Set RsFOLIOS = New ADODB.Recordset
SQL = "Select * From SERIE_FOLIOS Where FOLIOS = '" & Text1.Text & "' "
RsFOLIOS.Open SQL, Conexion.adOpenStatic (Aqui me marca el error)
If RsFOLIOS.RecordCount = 0 Then
MsgBox "No existe el Folio " & Text1.Text
Else
SQL = "Delete SERIE_FOLIOS Where FOLIOS = '" & Text1.Text & "'"
Conexion.Execute SQL
MsgBox "Ha sido eliminado de la base de datos el Folio " & Text1.Text

End If
End If
End Sub

Gracias
  #7 (permalink)  
Antiguo 25/05/2005, 10:23
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Cita:
Conexion.adOpenStatic (Aqui me marca el error)
Si no me equivoco esa línea está mal. Revisa la ayuda de visual basic.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #8 (permalink)  
Antiguo 27/05/2005, 10:42
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Delete

GRACIAS, PERO ME SIGUE DANDO ERROR "SE REQUIERE UN OBJETO"
ALGUNA IDEA ?

gRACIAS DE NUEVO
  #9 (permalink)  
Antiguo 27/05/2005, 11:44
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
pues no tienes declarada la variable Conexion, o solo que este declarada fuera de ese bloque de codigo
  #10 (permalink)  
Antiguo 27/05/2005, 12:31
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Delete

YA LA DECLARE
DIM CONEXION AS ADODB.CONNECTION
Y AHORA ME MARCA OTRO ERROR"

"OPERATION IS NOT ALLOWED ON AN OBJECTREFERENCING A CLOSED OR INVALID CONNECTION" ERROR 307 EN TIEMPO DE EJECUCION


AQUI VA MI CODIGO :

Private Sub Option3_Click()

Dim SQL As String
Dim RsRegistros As ADODB.Recordset
Dim CONEXION As ADODB.Connection
Set RsRegistros = New ADODB.Recordset
Set CONEXION = New ADODB.Connection

If Option3.Value = True Then
Text73.Text = "X"
Text71.Text = ""
Text72.Text = ""
Text1.Text = InputBox("NUMERO DE FOLIO")
SQL = "Select * From SERIE_FOLIOS Where FOLIOS = ' " & Text1.Text & " ' "
RsRegistros.Open SQL, CONEXION, adOpenStatic, adLockOptimistic
RsRegistros.MoveFirst

If Form2.Adodc1.Recordset.RecordCount = 0 Then
MsgBox "No existe el Folio" & Text1.Text

Else
SQL = "Delete Tabla Where Campo = ' " & valor & " ' "
CONEXION.Execute SQL
MsgBox "SE ELIMINARA DE LA BASE DE DATOS YA QUE VAS A UTILIZAR EL FOLIO" & Text1.Text
RsRegistros.Close

End If
End If
End Sub

USTEDES VEN DONDE ESTE EL ERROR??

YO NO VEO NADA

GRACIAS POR LA AYUDA !!!
  #11 (permalink)  
Antiguo 27/05/2005, 12:44
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
tienes que darle un valor a la propiedad connectionstring de la conexion, para acces creo que es asi

CONEXION.ConnectionString=Provider=Microsoft.Jet.O LEDB.4.0;Data Source=base_de_datos;Persist Security Info=False
  #12 (permalink)  
Antiguo 31/05/2005, 08:09
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
delete

Gracias DARKASECAS pero me sigue dando error, el mismo que te puse en el msge anterior.

Otra pregunta se puede hacer con adodc sin utilizar sql ?

que codigo llevaria?

Gracias por su respuesta y ayuda !!
  #13 (permalink)  
Antiguo 31/05/2005, 08:43
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Busqueda

Cabia lo siguiente:

Código:
...
If Option3.Value = True Then
Text73.Text = "X"
Text71.Text = ""
Text72.Text = ""
Text1.Text = InputBox("NUMERO DE FOLIO")
SQL = "Select * From SERIE_FOLIOS Where FOLIOS = ' " & Text1.Text & " ' "

'Agrega o modificas estás líneas
CONEXION.ConnectionString="Provider=Microsoft.Jet.O LEDB.4.0;Data Source=base_de_datos;Persist Security Info=False"
CONEXION.Open

RsRegistros.Open SQL, CONEXION, adOpenStatic, adLockOptimistic
RsRegistros.MoveFirst
...
No te servirá de mucho, pero si te puede dar una mejor idea de donde y como solucionar el problema.

Ah, no se puede evitar usar SQL.
__________________
Leer es Saber, REEL.
Mi Blog
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 21:56.