Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/07/2008, 01:42
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses
Puntos: 37
Respuesta: Cargar registros con DTPicker

Hola, bueno decirte que
1º El evento Click del DTPicker no retorna ningún valor cuando pinchas en un día con el calendario desplegado, debes utilizar el evento CloseUp.

2º En el Load del Form haces la conexión a la BD y abres el recordset y a continuación los cierras sin haber hecho nada?

Podrías hacer un procedimiento para seleccionar los registros mas o menos así:

Código:
Sub CargarValores()
Set record = New ADODB.Recordset
record.CursorLocation = adUseClient
sql = "SELECT * FROM citas where fecha = #" & DTPicker1.Value & "#"
' Nota: Di no te dá los valores correctos, ponlo así:
' where fecha = #" & Format(DTPicker1.value, "mm/dd/yyyy) & "#"

record.Open sql, conexion
Combo1.Clear
If record.RecordCount = 0 Then
    MsgBox "No hay citas para este día"
    Exit Sub
ElseIf record.RecordCount = 1 Then
    ' solamente hay una cita para este día
    RichTextBox1.Text = record!descripcion
    Text1.Text = record!seña
    Combo1.Text = record!hora
Else
    ' hay más de una cita en este día, mostramos el primero
    RichTextBox1.Text = record!descripcion
    Text1.Text = record!seña
    ' y cargamos en el combo todas las horas
    Do Until record.EOF
        Combo1.AddItem record!hora
        record.MoveNext
    Loop
    Combo1.ListIndex = 0
End Sub
En el evento Load del formulario:
Código:
Private Sub Form_Load()
DTPicker1.Value = Date
' abrimos la conexión que nos va a servir para todo el módulo de formulario y solamente la
' cerraremos en el evento Unload del Form
Set conexion = New ADODB.Connection
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\david\Escritorio\PROYECTO\bd1.mdb;Persist Security Info=False"
CargarValores
End Sub
En el evento CloseUp del DTPicker llamamos al procedimiento:
Código:
Private Sub DTPicker1_CloseUp()
CargarValores
End Sub
y en el evento Click del Combo mostramos el registro que coincida con la hora seleccionada:
Código:
Private Sub Combo1_Click()
Set record = New ADODB.Recordset
record.CursorLocation = adUseClient
' 0jo con los formatos de fecha y hora, depende cómo los tengas declarados en la BD
sql = "SELECT * FROM citas where fecha = #" & DTPicker1.Value & "# And hora = #" & Combo1.Text & "#"
RichTextBox1.Text = record!descripcion
Text1.Text = record!seña
End Sub