• Lunes 29 de Abril de 2024, 00:56

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - SamRico

Páginas: [1]
1
Bases de Datos / DbGrid enlazado con DbCombo.
« en: Miércoles 12 de Enero de 2011, 11:02 »
Buenos días, tengo una duda con lo siguiente. Estoy realizando un pequeño programa para gestionar las faltas de los alumnos en diferentes asignaturas. Tengo dos DbCombos, uno con la lista de alumnos y otro con la lista de asignaturas. Debajo tengo el DbGrid que mostrará las faltas del alumno seleccionado en la asignatura seleccionada. La duda que tengo es que no estoy seguro de saber hacer esto.

Este es el intento que he hecho pero obviamente no funciona.


Código: Visual Basic
  1. Private Sub cboAlumnos_Click()
  2.     Set RstFaltas = DbFaltas.OpenRecordset("Select * from Faltas Where rstAlumnos![DNI]=IdAlumno AND rstAsignaturas![IdAsig]=IdAsig;")
  3.     Set DtaFaltas.Recordset = RstFaltas
  4. End Sub
  5.  

rstAlumnos, rstAsignaturas y RstFaltas es de tipo Recordset.
DbFaltas es de tipo Database.

2
Saludos, tengo un pequeño problema. Estoy haciendo un programa y tengo que pasar una serie de nombres de una lista a otra lista. Pero no quiero que se pasen de la lista 1 a la lista 2 si en la lista 2, el elemento de la lista 1 ya se encuentra.

Yo he intentado el siguiente código pero falla por motivos de falta de conceptos por mi parte. A ver si me pueden ayudar.

Este es el algoritmo que he realizado para hacer sólo esa operación (pasar un nombre de una lista a otra)

Código: Visual Basic
  1. Private Sub LstJugadores_DblClick()
  2.     Dim i As Integer
  3.     Dim Bandera As Boolean
  4.     Bandera = True
  5.     For i = 0 To LstAlineacion.ListCount - 1
  6.         If LstJugadores.Text <> LstAlineacion.List(i) & Bandera = True Then
  7.             LstAlineacion.AddItem LstJugadores.Text
  8.             LstJugadores.RemoveItem LstJugadores.ListIndex
  9.             Bandera = False
  10.         End If
  11.     Next i
  12. End Sub
  13.  

3
Visual Basic para principiantes / Re: Proceso autoreiniciable
« en: Jueves 7 de Octubre de 2010, 08:29 »
Gracias, funciona perfectamente maestro.

Otra pequeña duda que tengo.

Verás, cuando le doy doble click al formulario se me carga otro formulario con una etiqueta que muestra la hora en tiempo real (esto no viene al caso de mi pregunta).

La cosa es que quiero mover ese formulario con las teclas de movimiento del teclado y lo he hecho del siguiente modo.
Código: Visual Basic
  1. Option Explicit
  2.     Dim Movimiento As Byte
  3.  
  4. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  5.     If (KeyCode = 37) Then FrmControl.Left = FrmControl.Left - Movimiento
  6.     If (KeyCode = 38) Then FrmControl.Top = FrmControl.Top - Movimiento
  7.     If (KeyCode = 39) Then FrmControl.Left = FrmControl.Left + Movimiento
  8.     If (KeyCode = 40) Then FrmControl.Top = FrmControl.Top + Movimiento
  9. End Sub
  10.  
  11. Private Sub Form_Load()
  12.     lblTiempo = Time
  13.     Timer2.Enabled = True
  14.     Timer2.Interval = 1000
  15.     FrmControl.Width = lblTiempo.Width
  16.     FrmControl.Height = lblTiempo.Height
  17.     lblTiempo.Top = 0
  18.     lblTiempo.Left = 0
  19.     Movimiento = 150
  20. End Sub
  21.  

Ahora bien, cuando le doy a dos teclas a la vez, solo funciona una. ¿Existiría alguna forma de decirle que cuando presione, por ejemplo la tecla 37 y 38 (izquierda y arriba), se vaya hacia arriba y hacia la izquierda a la vez?, es decir en diagonal.

Gracias.

4
Visual Basic para principiantes / Proceso autoreiniciable
« en: Miércoles 6 de Octubre de 2010, 13:14 »
Buenas tardes, estoy empezando a estudiar todos los mecanismos de Visual Basic y ahora estoy atascado con un pequeño problema que divisé en uno de los mismos. El programa consiste en un formulario negro donde cada milisegundo aparece un puntito de color aleatorio en una posición aleatoria del formulario. Ahora bien, cuando minimizo, o pongo otra ventana (una página web por ejemplo y vuelvo a maximizar o a focalizar en el formulario, todos los puntos que se habian ido generando desaparecen, y empieza desde cero.

Este es el código:
Código: Visual Basic
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Command1_Click()
  5.     End
  6. End Sub
  7.  
  8. Private Sub Form_Load()
  9.     Randomize (Timer)
  10.     Timer1.Interval = 1
  11.     Timer1.Enabled = True
  12. End Sub
  13.  
  14. Private Sub Form_Resize()
  15.     Command1.Top = Me.ScaleHeight - Command1.Height - 120
  16.     Command1.Left = Me.ScaleWidth - Command1.Width - 120
  17. End Sub
  18.  
  19. Private Sub Timer1_Timer()
  20.     Dim CorX As Integer, CorY As Integer
  21.     Dim VRojo As Integer, VVerde As Integer, VAzul As Integer
  22.     'Obtenemos las coordenadas aleatorias de los puntos a dibujar.
  23.    CorX = Int(Rnd * Me.ScaleWidth)
  24.     CorY = Int(Rnd * Me.ScaleHeight)
  25.     'Obtenemos valores aleatorios para dar color al punto a dibujar.
  26.    VRojo = Int(Rnd * 255)
  27.     VVerde = Int(Rnd * 255)
  28.     VAzul = Int(Rnd * 255)
  29.     'Dibujamos el punto en el lugar y con el color obtenido anteriormente.
  30.    PSet (CorX, CorY), RGB(VRojo, VVerde, VAzul)
  31. End Sub
  32.  
  33.  

¿Tenéis alguna idea de cómo solventar este pequeño problema?

Páginas: [1]