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

Bandera en VB6

Estas en el tema de Bandera en VB6 en el foro de Visual Basic clásico en Foros del Web. Hola, estoy haciendo una aplicación donde debo borrar una categoría si la misma no esta siendo utilizada por ningun socio. En caso contrario muestra un ...
  #1 (permalink)  
Antiguo 05/07/2011, 15:35
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Bandera en VB6

Hola, estoy haciendo una aplicación donde debo borrar una categoría si la misma no esta siendo utilizada por ningun socio. En caso contrario muestra un mensaje y no lo borra. Borra perfecto, pero no puedo hacer que la bandera "haysocio= 0" se actualice y se ponga en 1 en caso de que un socio tenga esa categoria asociada. Solamente me muestra un solo valor en 1 de 5 categorias que tiene la tabla. Donde tengo el error?. Estoy usando DataControl.

Aqui el codigo:

Private Sub Form_Load()

Dim Path_Base_Dato As String, db As Database
Dim rst, rec As Recordset

Path_Base_Dato = App.Path
Path_Base_Dato = Path_Base_Dato & "\bd1.mdb" 'CONEXION A BASE DE DATOS

'Abre la base de datos
Set db = OpenDatabase(Path_Base_Dato)

'Abre el Recordset
Set rst = db.OpenRecordset( _
"SELECT DescripcionCategoria FROM Categoria ORDER BY DescripcionCategoria", _
dbOpenSnapshot)

Set rec = db.OpenRecordset( _
"SELECT * FROM Socio", _
dbOpenSnapshot)
' Se mueve la primer registro
rst.MoveFirst
Do While Not rst.EOF
'Agrega el Nombre al Combo
ComboCategorias.AddItem rst!DescripcionCategoria

'siguiente registro
rst.MoveNext
Loop

'Cierra el recordset y la base
rst.Close
rec.Close
db.Close

'Se asigna la base de datos al Data1
Data1.DatabaseName = Path_Base_Dato
Data2.DatabaseName = Path_Base_Dato

'Seleccionamos el primer elemento del combo
ComboCategorias.ListIndex = 0

End Sub


Private Sub ComboCategorias_Click()
Dim i, cant As Integer

' Al hacer Click en el elemento del combo _
se selecciona mediante sql el registro _
y la cadena Sql se asigna al Recorsource del _
control data
Data1.RecordSource = _
"SELECT * FROM Categoria WHERE DescripcionCategoria='" & ComboCategorias & "'"

Data2.RecordSource = _
"SELECT * FROM Socio"

'Refresca el control data
Data1.Refresh
Data2.Refresh

haysocio = 0
cat = Text1.Text

If ComboCategorias.Text <> "" Then

cant = Data2.Recordset.RecordCount
Data2.Recordset.MoveFirst

For i = 0 To cant - 1
If Data2.Recordset.Fields("CodigoCategoria") = cat Then
haysocio = 1
Exit For

Else
Data2.Recordset.MoveNext

End If

Next

End If

Text4.Text = haysocio

End Sub



Private Sub Command1_Click()

If ComboCategorias.Text = "" Then
MsgBox "La descripción de categoría no puede estar vacía", vbInformation, "Información al Usuario"
ComboCategorias.SetFocus
Exit Sub
End If


If haysocio <> 1 Then

With Data1.Recordset
'Elimina
If Data1.Recordset.RecordCount = 0 Then Exit Sub
.Delete
'Posiciona en el siguiente
.MoveNext
If Not .EOF Then .MoveLast
End With

MsgBox "Se ha eliminado la categoría seleccionada", vbInformation, "Datos Registrados"
Unload Me

Else
MsgBox "La categoría está siendo utilizada en algún socio", vbInformation, "Datos Registrados"
End If

End Sub

Etiquetas: bd, sql, vb, vb6
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 05:41.