CALCULAR E AVISAR O NUMERO DE ANIVERSARIO
Vc pode resolver assim
1 - Pegar a lista de aniversariantes
Select código, nome, datanasc, fone From Clientes where Month(datanasc) =[txt-color=#e80000]4[/txt-color] and Day(datanasc) = [txt-color=#e80000]8
[/txt-color]
onde os valores em vermelho referem-se ao dia e mês desejados
2 - Pegar o número de aniversariantes
Select Count(*) as Numero From Clientes where Month(datanasc) =4 and Day(datanasc) = 8
esse segundo casovc poderia obter mediande o numero de linhas do datagridview
NumAniver = datagridview1.rowcount
1 - Pegar a lista de aniversariantes
Select código, nome, datanasc, fone From Clientes where Month(datanasc) =[txt-color=#e80000]4[/txt-color] and Day(datanasc) = [txt-color=#e80000]8
[/txt-color]
onde os valores em vermelho referem-se ao dia e mês desejados
2 - Pegar o número de aniversariantes
Select Count(*) as Numero From Clientes where Month(datanasc) =4 and Day(datanasc) = 8
esse segundo casovc poderia obter mediande o numero de linhas do datagridview
NumAniver = datagridview1.rowcount
fiz assim
mais nao deu certo
rsrs
mais nao deu certo
rsrs
Public Sub ListaAniversarios()
Dim dr As OleDbDataReader = Nothing
Using cn As OleDbConnection = ConexaoBD()
Try
cn.Open()
Dim sql As String = [Ô]select count(*) from clientes where Format(dt_nasc,[ô]ddMM[ô]) = @DiaMes [Ô]
[ô] Dim sql As String = [Ô]select cod_clie,nome,dt_nasc,fone,celular from clientes where Format(dt_nasc,[ô]ddMM[ô]) = @DiaMes[Ô]
Dim cmd As OleDbCommand = New OleDbCommand(sql, cn)
[ô] cmd.Parameters.AddWithValue([Ô]@DiaMes[Ô], DataAtual.ToString([Ô]ddMM[Ô]))
dr = cmd.ExecuteReader
If (dr.HasRows) Then
dr.Read()
MsgBox([Ô]existe anivesariante hoje[Ô])
Else
MsgBox([Ô]nao existe anivesariante hoje[Ô])
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
cn.Close()
End Try
End Using
End Sub
Dim conn As OleDbConnection
Try
conn = New OleDbConnection([Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] & Application.StartupPath & [Ô]\BD.accdb; Persist Security Info=False;[Ô])
conn.Open()
Dim query As String = [Ô]SELECT cod_clie, nome FROM clientes WHERE Day(dt_nasc) = @dia AND Month(dt_nasc) = @mes[Ô]
Using command = New OleDbCommand(query, conn)
command.Parameters.Add([Ô]@dia[Ô], OleDbType.Integer).Value = Today.Day
command.Parameters.Add([Ô]@mes[Ô], OleDbType.Integer).Value = Today.Month
Dim reader As OleDbDataReader
reader = command.ExecuteReader()
If reader.HasRows Then
Dim nrResults As Integer = 0
Dim strMsg As String = vbNewLine
While (reader.Read())
strMsg &= [Ô]ID: [Ô] & reader.GetValue(0) & [Ô] Nome: [Ô] & reader.GetValue(1) & vbNewLine
nrResults += 1
End While
MessageBox.Show([Ô]Total: [Ô] & nrResults & vbNewLine & strMsg, [Ô]Aniversariantes[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Using
conn.Close()
Catch ex As Exception
End Try
veja se serve e adapte ao seu jeito
Citação::
Dim conn As OleDbConnection
Try
conn = New OleDbConnection([Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] & Application.StartupPath & [Ô]BD.accdb; Persist Security Info=False;[Ô])
conn.Open()
Dim query As String = [Ô]SELECT cod_clie, nome FROM clientes WHERE Day(dt_nasc) = @dia AND Month(dt_nasc) = @mes[Ô]
Using command = New OleDbCommand(query, conn)
command.Parameters.Add([Ô]@dia[Ô], OleDbType.Integer).Value = Today.Day
command.Parameters.Add([Ô]@mes[Ô], OleDbType.Integer).Value = Today.Month
Dim reader As OleDbDataReader
reader = command.ExecuteReader()
If reader.HasRows Then
Dim nrResults As Integer = 0
Dim strMsg As String = vbNewLine
While (reader.Read())
strMsg &= [Ô]ID: [Ô] & reader.GetValue(0) & [Ô] Nome: [Ô] & reader.GetValue(1) & vbNewLine
nrResults += 1
End While
MessageBox.Show([Ô]Total: [Ô] & nrResults & vbNewLine & strMsg, [Ô]Aniversariantes[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Using
conn.Close()
Catch ex As Exception
End Try
veja se serve e adapte ao seu jeito
consegui fazer amigos, obg tenho outro problema no mesmo tempo, estou tentando fazer que o campo data de nascimento, não seja obrigatório, só que ele está o tipo de campo é de DATA/HORA, e não está aceitando o campo vazio preciso preencher com uma data qualquer
pensei em mudar para o tipo de campo, quero insistir em manter com o mesmo.
alguma referencia que pode ser util ?
Tópico encerrado , respostas não são mais permitidas