none
Pesquisar Aniversariante do Dia RRS feed

  • Pergunta

  • Estou fazendo um programinha que eu possa fazer uma pesquisa para ver o cliente que faz aniversario no dia.

    O campo que uso para digitar é o MaskedTextBox1, projeto a informação em um ListBox1.

    O nome do meu banco é bdcliente e minha tabela é tabCliente.

    A coluna da tabela onde se encontra a data se chama  Nascimento. Uso Access.

    Quem pode me ajudar a montar esse código ?

    sexta-feira, 17 de maio de 2013 00:58

Todas as Respostas

  •    

    Com meu banco de dados é assim, nunca usei access, mas ai vai um exemplo

    lembre de conectar todos o Forms com o seu banco

    dim banco As New ADODB.Connection

    Public Function Dt_F(sdata As Variant) As String
        Dt_F = Format(CStr(sdata), "yyyy/mm/dd")
    End Function

    Private Sub cmdLocalizar_Click()

    Dim Item As ListItem
    Dim lSql As String
    ListBox1.ListItems.Clear
    Dim rsDados As ADODB.Recordset
    Set rsDados = New ADODB.Recordset

    lSql = "select * from tabCliente where Nascimento = " & CDate(MaskedTextBox1.Text) If MaskedTextBox1.Text <> "" Then lSql = lSql & " and data = '" & Dt_F(MaskedTextBox1.Text) & "'" End If

    rsDados.Source = lSql

        rsDados.ActiveConnection = banco
        rsDados.Open
            If rsDados.EOF = False Or rsDados.BOF = False Then
                Do While Not rsDados.EOF
                    Set Item = ListBox1.ListItems.Add(rsDados.Fields("Nome"))
                    Item.SubItems(1) = CStr(rsDados.Fields("data"))
                    rsDados.MoveNext
                Loop
            End If
        rsDados.Close
        Set rsDados = Nothing

    ListBox1.Setfocus

    End sub

    testa ai que acho q vai dar certo



    sexta-feira, 17 de maio de 2013 12:47
  • O problema e que não sei adaptar para access. Alguém pode me ajudar estou com urgência ?

    sexta-feira, 17 de maio de 2013 14:39
  • Ai tbem nao sei
    sexta-feira, 17 de maio de 2013 14:58
  • Alguém saberia ?

    sexta-feira, 17 de maio de 2013 15:42
  • Eu não entendi muito bem mais ve, se é isso:

    Vc faz uma conexao como Access, e fica verificando a data de aniversario, se for isso faça o seguinte:

    Este é pra fazer conexao com access 2010: pois o access 2010 termina com .accdb, diferente dos anteriores, se vc usar um anterior me fala que eu passo pra vc:

     Dim conexaoBD As New OleDb.OleDbConnection
                    conexaoBD.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=Provider=Microsoft.ACE.OLEDB.12.0; Data Source= C:/teste.accdb" 
                    conexaoBD.Open()

    mas antes de implementar este comando faça o seguinte, adicione a DataSoucer, escolha o banco de dados, ai vai aparecer uma pergunta:(deseja criar uma copia dentro do programa) Sim ou Não, vc responde SIM, ai neste trecho do codigo acima vc pd usar assim:

    Provider=Microsoft.ACE.OLEDB.12.0; Data Source= teste.accdb

    isto fara com que ele busque na pasta do programa sempre o banco de dados:

    Esta feita a conexao, se vc quiser, pegar os valores do BD pelo programa, so pedir que eu passo o resto, pq eu  não entendi muito bem sua pergunta, se for este o caminho, eu posso ajudar:

    *-*

    sexta-feira, 17 de maio de 2013 18:52
  • Lendo Várias Vezes sua pergunta eu acho que entendi:

    Primeiro defina como vc vai fazer pra chamar a conexão, se vai ser ao clicar em um botao ou em um timer, ou algo do tipo:

    ai vc cria no minomo 2 variaveis: uma pra coluna Codigo e outra pra coluna Nascimento, Ex:

    Dim codigo as integer

    dim nascimento as string(vc pd usar Date ao inves de string, mas eu nunca tentei)

    ai vc vai chamar a conexão: se vc decidiu verificar se tem um aniversariante, cada vez que vc clica em um botao, entao ficaria

     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Buscar(OcodigodoBancoDeDados) ' Aqui vai o numero do codigo do banco de dados, ou vc pd colocar: textbox1.text, ai ele vai buscar de acordo com o numero na textbox
        End Sub
    Private Sub Buscar(ByVal codigo As Integer)
    
            Dim conexaoBD As New OleDb.OleDbConnection
            conexaoBD.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:/bdcliente.accdb" 'Este é pra access 2010, se o seu for menor tipo 2007 fala que eu mudo.
            conexaoBD.Open()
    
            Dim ms As New IO.MemoryStream
            Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM tabcliente " & _
                                                             " WHERE codigo=" & codigo, cn)
    
            Dim dt As New DataTable
            da.Fill(dt)
    
            If dt.Rows.Count > 0 Then
                codigo = dt.Rows(0).Item("codigo")
                Nascimento = dt.Rows(0).Item("Nascimento") & ""
                
            Else
                MsgBox("REGISTRO NÃO ENCONTRADO")
    
            End If
    
            cn.Close()
    
        End Sub

    Pronto agora sua Variavel Nascimento tem o valor do campo nascimento do Banco de Dados, vc pd usar uma textbox no lugar da variavel tbm.

    Dica: se vc quer que verifique automaticamente, coloque o primeiro codigo no FormLoad ou em um timer, Lembrando que vc precisa especificar o codigo que vc vai procurar, caso vc queira procurar todos automaticamente faça:

    Um timer que fique somando +1, Ex:

    Dim BuscarCodigo as integer = 0

    ai dentro do timer vc coloca o comando

    BuscarCodigo = BuscarCodigo +1

    Buscar(BuscarCodigo)

    sexta-feira, 17 de maio de 2013 21:47