Inquiridor
Pesquisar Aniversariante do Dia

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 ?
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 FunctionPrivate Sub cmdLocalizar_Click()
Dim Item As ListItem
Dim lSql As String
ListBox1.ListItems.Clear
Dim rsDados As ADODB.Recordset
Set rsDados = New ADODB.RecordsetlSql = "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 = NothingListBox1.Setfocus
End sub
testa ai que acho q vai dar certo
- Editado luciano pozzebonn sexta-feira, 17 de maio de 2013 12:58
-
-
-
-
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:
*-*
-
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)