CALCULAR E AVISAR O NUMERO DE ANIVERSARIO

PLUGSOFTSM 08/04/2016 11:47:40
#460755
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
COQUITO 08/04/2016 12:27:34
#460762
fiz assim

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
GANDA.NICK 08/04/2016 12:32:51
#460763
        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
COQUITO 11/04/2016 06:38:55
#460847
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 ?
Página 2 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas