Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

flaviojef

Clicar no MonthCalendar e mostrar valores guardados nas textbox's

Mensagens Recomendadas

flaviojef

boas pessoal estou aqui a tentar resolver uma cena mas ainda não consegui, precisava mesmo de ajuda, então é o seguinte:

eu tenho dados já registados numa base de dados em MySQL por exemplo um serviço, esse serviço foi registado num Form que contem um DataTimePicker a dia 20 de Março, então agora criei um Form novo que quero que contenha um MonthCalendar e que ao clicar no dia 20 de Março (que é onde está guardado esse serviço) me mostre na Textbox ao lado o nome desse serviço que guardei. precisava mesmo que alguem me ajuda-se é bastante importante :S

eu tentei colocar isto no Form_load:

Dim myCommand As New MySqlCommand
        Dim myAdapter As New MySqlDataAdapter
        Dim myData As New DataTable
        Dim mySQL As String = "SELECT * FROM marcacoes"
        Dim conn As MySqlConnection
        conn = New MySqlConnection
        conn.ConnectionString = "server=it.integrale.com.pt; user id=jef; password=jef; database=megastand"

        Try
            conn.Open()
            Try
                myCommand.Connection = conn
                myCommand.CommandText = mySQL
                myAdapter.SelectCommand = myCommand
                myAdapter.Fill(myData)
                DataGridView_ver_marcacoes.DataSource = myData

                With MonthCalendar1
                    .DataSource = myData
                    .DisplayMember = "nome"
                    .ValueMember = "nome"
                    .SelectedIndex = 0
                End With

            Catch myerro As MySqlException
                MsgBox("Erro de leitura na Base de dados : " & myerro.Message)
            End Try
            conn.Close()
        Catch myerro As MySqlException
            MessageBox.Show("Erro ao conectar com a Base de dados : " & myerro.Message)
        Finally
            conn.Dispose()
        End Try

so que nesta parte:

With MonthCalendar1
                    .DataSource = myData
                    .DisplayMember = "nome"
                    .ValueMember = "nome"
                    .SelectedIndex = 0

diz que o dataSource nao é membro do system.windows.forms.monthcalendar e nao aceita :S

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
flaviojef

pois mas no meu caso nao consigo igualar a essa propriedade ao mydata :s

existe alguma outra solução diferente para fazer o que eu pretendo?

eu explico mais profundamente o que quero mesmo talvez nao tenhas percebido...

eu tenho um form que possui tres textbox e mais um datatimepicker, essas tres textbox sao para preencher qual o serviço, o funcionario que faz esse serviço e o cliente, depois o datatimepicker serve para marcar o dia, (fazer essa marcaçao) por exemplo dia 20 de Março, agora criei um outro form que vai visualizar essa informação, ou seja, quero que contenha um monthcalendar e os mesmo campos que estavam no form, menos o datatimepicker, e que ao clicar no dia 20 de março apareça nas textbox os dados que eu registei no form anterior... era isso que pertendia e nao sei muito bem o que fazer... :wallbash:

agradecia mesmo uma ajudinha porque precisava mesmo disso a funcionar...

 

cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Se usares o DataBindings não funcionará?

MonthCalendar.DataBindings.Add(New Binding("Tipo de campo", ds, "campo da BD"))

E depois através do método OnDateSelected da classe MonthCalendar preenches as TextBoxs com os dados que pretendes.

De momento foi o que me ocorreu...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
flaviojef

a intenção nao é preencher os campos mas sim ir buscar os campos que ja estao preenchidos... nao existe solução para isto?

cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
flaviojef

eu dou um exemplo mais especifico ainda:

eu tenho um form que contem 3 textbox mais um datatimepicker, esse datatimepicker serve para marcar um dia.

a primeira textbox é preenchida por um serviço qualquer, por exemplo: pintura, na segunda é o funcionário que faz esse serviço, por exemplo: Manel e na ultima é o cliente por exemplo: Luís

então agora no datatimepicker escolho a data por exemplo 20 de Março e noutro form que criei tenho um monthcalendar mais as textbox's que tinha de preencher no outro form anterior... ou seja o que eu quero mesmo em concreto é, ao clicar no dia 20 de Março me apareça nas textbox aquilo que eu marquei para esse dia, como é óbvio se clicar no dia 21 já não aparece nada porque não marquei nada...

eu consigo resolver essa situação se fosse com uma listbox... vou colocar aqui o código que eu utilizava se fosse por uma listbox: (Testado e funciona)

primeiro colocar o imports mysql.data.mysqlclient no general e no form load isto (onde está LB_clientes é a listbox):

Dim myCommand As New MySqlCommand
        Dim myAdapter As New MySqlDataAdapter
        Dim myData As New DataTable
        Dim mySQL As String = "SELECT * FROM clientes"
        Dim conn As MySqlConnection
        conn = New MySqlConnection
        conn.ConnectionString = "server=it.integrale.com.pt; user id=jef; password=jef; database=megastand"

        Try
            conn.Open()
            Try
                myCommand.Connection = conn
                myCommand.CommandText = mySQL
                myAdapter.SelectCommand = myCommand
                myAdapter.Fill(myData)
                DataGrid_editar_clientes.DataSource = myData

                With LB_clientes
                    .DataSource = myData
                    .DisplayMember = "nome"
                    .ValueMember = "nome"
                    .SelectedIndex = 0
                End With

            Catch myerro As MySqlException
                MsgBox("Erro de leitura na Base de dados : " & myerro.Message)
            End Try
            conn.Close()
        Catch myerro As MySqlException
            MessageBox.Show("Erro ao conectar com a Base de dados : " & myerro.Message)
        Finally
            conn.Dispose()
        End Try

para isto tive de criar uma datagrid para poder aparecer a informação na list e dentro da list tenho isto:

txt_nome_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(1).Value.ToString
        txt_bi_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(2).Value.ToString
        txt_morada_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(3).Value.ToString
        txt_telefone_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(4).Value.ToString
        txt_email_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(5).Value.ToString
        txt_localidade_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(6).Value.ToString
        txt_cp_cliente1.Text = DataGrid_editar_clientes.CurrentRow.Cells(7).Value.ToString
        txt_user_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(8).Value.ToString
        txt_pass_cliente.Text = DataGrid_editar_clientes.CurrentRow.Cells(9).Value.ToString
        txt_cp_cliente2.Text = DataGrid_editar_clientes.CurrentRow.Cells(10).Value.ToString

o que irá acontecer aqui não é nada mais nada menos que ao clicar no nome que quero, neste caso do cliente, apareça toda a informação do cliente nas textbox

então agora como faço isto mas com um monthcalendar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ByMySlf

Com o MonthCalendar dentro do evento OnDateSelected  vais buscar essa informação. Como a classe MonthCalendar não tem a propriedade DataSource quando o utilizador, selecciona uma data, efectuas uma query à BD que lhe mostre nas TextBoxs o que pretendes. Isto tudo segunda a data seleccionada pelo utilizador.

De momento é o que me está a ocorrer.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.