none
Guardar y Cargar Desde un Month Calender RRS feed

  • Pregunta

  • Bueno tengo conocimiento es como guardar textos de un textbox a una base de datos pero esta vez quisiera que al darle clic a un dia cualquiera en el calendario se guardara dicha fecha mas un nombre de usuario que iria en otro campo en una base de datos pero no se si alla alguna propiedad como es CellContentClic o no la veo. La pregunta es ams enfocada a como hacer un historial dado que tambien necesito saber como hago para que al darle clic a ese dia en otro month calender me refleje la fecha hora y el usuario guardado
    miércoles, 18 de mayo de 2016 23:35

Respuestas

  • Hola VictorD514,

    Primer código :

    - Lo que hace ese código es obtener los valores de la fila actual seleccionada, y cada valor  asignarle a un TextBox.

    - Ya que solo vas a usar una sola fecha del MC, cambia esta propiedad , para que el usuario solo puede seleccionar una fecha.

        Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) _
                               Handles MonthCalendar1.DateSelected
            TextBox1.Text = MonthCalendar1.SelectionStart
        End Sub


    Segundo código :

    En este código lo que haces es tomar un valor de un textBox y tomarlo como filtro en la consulta, luego la data que cumpla con la condición cargarlos al DataGridView.

      Private Sub btnBuscar_Click(sender As Object, e As EventArgs) _
                          Handles btnBuscar.Click
    
            Dim sql As String = "select * from miTabla where Columna1 = @fecha"
    
            Using conexion As New OleDbConnection("miCadenaDeConexion")
                'Abrimos la conexion
                conexion.Open()
    
                Dim comando As New OleDbDataAdapter(sql, conexion)
                comando.SelectCommand.Parameters.AddWithValue("@fecha", MonthCalendar1.SelectionStart)
    
                Dim tabla As New DataTable
    
                Try
                    'Cargamos los datos de la consulta al DataTabla
                    comando.Fill(tabla)
    
                    'Enlazamos la tabla al DGV
                    DataGridView1.DataSource = tabla
    
                Catch ex As Exception
                    MessageBox.Show("Se produjo un error : " & ex.Message)
                End Try
    
                conexion.Close()
            End Using
    
        End Sub

    Tomo el valor del MonthCalendar mediante el SelectionStart, el cual me devolverá un tipo Date, por lo que la columna de tu tabla debe ser del mismo.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 19 de mayo de 2016 1:20

Todas las respuestas

  • Hola VictorD514,

    Vamos por partes, puedes usar el evento DateSelected del MonthCalendar, el cual se ejecuta cuando el usuario selecciona una fecha o un intervalo de fecha presionando un click sobre la(s) misma(s).

    Pero si deseas hacer un historial, no te convendría usar un DateTimePicker ?, puedes guardar fecha y hora en un campo de tipo DateTime.

    Puedes mostrar una imagen de tu formulario, para darnos una idea, y poder plantearte soluciones.

    Además que gestor de base de datos estás usando?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 18 de mayo de 2016 23:51
  • Bueno, mas o menos me sirvio tu respuesta Joel C. Naupa Crispín pero no habra alguna manera de hacer un codigo como este pero con el Month Calendar 

     Dim row As DataGridViewRow = Me.DataGridView.CurrentRow (pero cambiar esto por la fecha del Month Calendar)
            TextBox1.Text = row.Cells(0).Value
            TextBox2.Text = row.Cells(1).Value
            TextBox3.Text = row.Cells(2).Value
            TextBox4.Text = row.Cells(3).Value

    o como

    Sub TABLALOAD()
            Dim carga As New OleDbDataAdapter("select * from TABLA where COLUMNA like '" & "Textbox1.text" & "%'", conexion)
            Dim ds As New DataSet
            carga.Fill(ds, "TABLA")
            TABLADataGridView.DataSource = ds.Tables("TABLA")
            TABLADataGridView.Sort(TABLADataGridView.Columns(0), System.ComponentModel.ListSortDirection.Descending.Ascending)
            TABLADataGridView.Sort(TABLADataGridView.Columns(6), System.ComponentModel.ListSortDirection.Descending.Ascending)

    en este ultimo mi pregunta es en vez de poner textbox1.text como hacer que busque es la fecha clickeada en en Month calender

    jueves, 19 de mayo de 2016 0:51
  • Hola VictorD514,

    Primer código :

    - Lo que hace ese código es obtener los valores de la fila actual seleccionada, y cada valor  asignarle a un TextBox.

    - Ya que solo vas a usar una sola fecha del MC, cambia esta propiedad , para que el usuario solo puede seleccionar una fecha.

        Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) _
                               Handles MonthCalendar1.DateSelected
            TextBox1.Text = MonthCalendar1.SelectionStart
        End Sub


    Segundo código :

    En este código lo que haces es tomar un valor de un textBox y tomarlo como filtro en la consulta, luego la data que cumpla con la condición cargarlos al DataGridView.

      Private Sub btnBuscar_Click(sender As Object, e As EventArgs) _
                          Handles btnBuscar.Click
    
            Dim sql As String = "select * from miTabla where Columna1 = @fecha"
    
            Using conexion As New OleDbConnection("miCadenaDeConexion")
                'Abrimos la conexion
                conexion.Open()
    
                Dim comando As New OleDbDataAdapter(sql, conexion)
                comando.SelectCommand.Parameters.AddWithValue("@fecha", MonthCalendar1.SelectionStart)
    
                Dim tabla As New DataTable
    
                Try
                    'Cargamos los datos de la consulta al DataTabla
                    comando.Fill(tabla)
    
                    'Enlazamos la tabla al DGV
                    DataGridView1.DataSource = tabla
    
                Catch ex As Exception
                    MessageBox.Show("Se produjo un error : " & ex.Message)
                End Try
    
                conexion.Close()
            End Using
    
        End Sub

    Tomo el valor del MonthCalendar mediante el SelectionStart, el cual me devolverá un tipo Date, por lo que la columna de tu tabla debe ser del mismo.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    jueves, 19 de mayo de 2016 1:20
  • Joel C. Naupa Crispín Muchísimas gracias pero no entiendo muy bien el 2° código no entendí muy bien la función. el primero me sirvió pero me interesa entender el segundo.
    jueves, 19 de mayo de 2016 2:37