|
Postada em 10/04/2008 17:43 hs
olá amigos, postei um topico, sobre data, e acho que não mim expressei direito, pois tenho um cadastro de Mala direta, onde tenho um campo com a data de nascimento do cidadão, exemplo 20/07/1974, queria saber como faço para quando chegar no dia 20/07/2008, 0 sistema avisar-me em um msgbox("hoje cliente fulano de tal está completando 34 anos"). desde ja agradeço.
|
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 10/04/2008 18:10 hs
Faz assim colega: cole este código no seu form Dim Nascimento As Date ' a função abaixo calcula a idade em anos Public Function Age(Bdate As Date, DateToday _ As Date) As Integer If Month(DateToday) < Month(Bdate) Or _ (Month(DateToday) = Month(Bdate) And _ Day(DateToday) < Day(Bdate)) Then Age = Year(DateToday) - Year(Bdate) - 1 Else Age = Year(DateToday) - Year(Bdate) End If End Function ' no Load do seu form o seguinte código Private Sub Form_Load() Nascimento="10/04/1972" If Day(Nascimento) = Day(Date) And Month(Nascimento) = Month(Date) Then MsgBox "fulano faz " & Age(Nascimento, Date) & "anos hoje" End If End Sub pronto veja se era isto
|
TÓPICO EDITADO
|
|
|
|
Tekki
|
UBERLÂNDIA MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 10/04/2008 23:10 hs
Tente também com Select Option Explicit Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Private Sub Form_Load() Dim sql As String Dim i As Integer Dim iAnos As Integer Set cn = New ADODB.Connection cn.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= " & "C:SeuBDados.mdb" & "; Jet OLEDB:Database Password=SuaSenha;" Set rs = New ADODB.Recordset With rs .CursorLocation = adUseClient .LockType = adLockBatchOptimistic .CursorType = adOpenForwardOnly End With sql = "Select * from TClientes Where Format(DatNascimento,'dd/mm') = '" & Format(Date, "dd/mm") & "'" rs.Open sql, cn Do While Not rs.EOF iAnos = DateDiff("yyyy", rs("DatNascimento").Value, Date) MsgBox "Hoje o cliente " & rs("Nome").Value & " faz " & iAnos & " anos" rs.MoveNext Loop End Sub
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 11/04/2008 17:39 hs
Colega fiz uma alteração no meu código anterior e transformei em uma unica funçaõ ficou muito bom, veja: no caso abaixo inseri a mesma no form porém ela poderia ficar em um módulo Public Function Aniversario(Nome As String, Nascimento As Date) As Integer Dim Idade As Integer If Month(Date) < Month(Nascimento) Or _ (Month(Date) = Month(Nascimento) And _ Day(Date) < Day(Nascimento)) Then Idade = Year(Date) - Year(Nascimento) - 1 Else Idade = Year(Date) - Year(Nascimento) End If If Day(Nascimento) = Day(Date) And Month(Nascimento) = Month(Date) Then MsgBox "Hoje o cliente " & Nome & " está completando " & Idade & " anos", vbInformation, _ " Aniversariante do dia !" End If End Function ' para chamar basta fazer o seguinte Private Sub Form_Load() Aniversario "Marcelo", "11/04/1972" End Sub
viu ficou super simples
|
|
|
|