RETORNAR MES

ARES 29/12/2012 09:00:59
#416534
Amigos,

Estou desenvolvendo uma função que ira me retornar o numero de positivação de clientes no período de 6 meses.

Gostaria de pegar o mês atual

dim mesbase as date
mesbase = now

me.txtmesbase = format(mesbase, [Ô]MM[Ô])

Assim vou subtraindo até encontrar os os meses anteriores para minha pesquisa semestral, contudo, quando vira ano fica negativo.

Alguém conhece um procedimento para resolver este problema?

FILMAN 29/12/2012 11:37:40
#416536
Resposta escolhida
Tente isso vai te ajudar! Coloque dentro de CommandButton e verifica o resultado!!

Dim dataRetroativa as String
Dim dataAtual as String

dataAtual = Format$(Now, [Ô]dd/mm/yyyy[Ô])
dataRetroativa = DateAdd([Ô]m[Ô], -6, CDate(dataAtual))

MsgBox dataRetroativa



Espero ter ajudado
SNNIFFER 30/12/2012 08:45:11
#416570
  
Sub CalculaMes()
[ô]-- Informa ao programa o nome dos meses em português.

Select Case IndMes
Case 1
NomeMes = [Ô]Janeiro[Ô]
NumDias = 31
Case 2
NomMes = [Ô]Fevereiro[Ô]
[ô]Bissexto é ano múltiplo de 4 e não de 100; ou múltiplo de 400
If (Ano Mod 4 = 0 And Ano Mod 100 <> 0) Or (Ano Mod 400 = 0) Then
NumDias = 29
Else
NumDias = 28
End If
Case 3
NomeMes = [Ô]Março[Ô]
NumDias = 31
Case 4
NomeMes = [Ô]Abril[Ô]
NumDias = 30
Case 5
NomeMes = [Ô]Maio[Ô]
NumDias = 31
Case 6
NomeMes = [Ô]Junho[Ô]
NumDias = 30
Case 7
NomeMes = [Ô]Julho[Ô]
NumDias = 31
Case 8
NomeMes = [Ô]Agosto[Ô]
NumDias = 31
Case 9
NomeMes = [Ô]Setembro[Ô]
NumDias = 30
Case 10
NomeMes = [Ô]Outubro[Ô]
NumDias = 31
Case 11
NomeMes = [Ô]Novembro[Ô]
NumDias = 30
Case 12
NomeMes = [Ô]Dezembro[Ô]
NumDias = 31
End Select
CalculaDias

End Sub







OMAR2011 30/12/2012 10:03:35
#416571
Participantes não estão entendendo o sentido do post.

Melhor você colocar seu código, ai os participantes poderão
fazer algo por você.
Valeu
GANDA.NICK 30/12/2012 11:32:22
#416572

quando o mês for menor que 1 tente somar 12 ao mês e tirar 1 ao ano....
SIRIOUS 31/12/2012 13:09:00
#416586
No exemplo do Filman, basta colocar numa variável o nº de meses desejados para voltar. Posteriormente, vincule seus dados através de uma instrução SQL,
de forma que, após a msgbox apontar a data do relatório, os dados seriam exibidos.
(no exemplo, mude a linha <dataRetroativa = DateAdd([Ô]m[Ô], -6, CDate(dataAtual)) para:
dataRetroativa = DateAdd([Ô]m[Ô], - Variável, CDate(dataAtual))...
VELDRAME 02/01/2013 13:57:32
#416626
Citação:

Dim dataRetroativa as String
Dim dataAtual as String

dataAtual = Format$(Now, [Ô]dd/mm/yyyy[Ô])
dataRetroativa = DateAdd([Ô]m[Ô], -6, CDate(dataAtual))

MsgBox dataRetroativa


Aonde se lê [Ô]-6[Ô] você coloca uma variável, se for o caso, com a quantidade de meses que você quer retroagir.

Continuando o Exemplo do Filman....
E de um select na sua tabela, com os campos que você precisa ou nela inteira.
Select * from Tabela Where CampoData Between [ô] [Ô] &  dataRetroativa & [Ô] [ô] and [ô] [Ô] & dataAtual & [Ô] [ô]




VELDRAME 02/01/2013 14:05:32
#416627
Outro possibilidade, caso você queria pegar do 1º dia do mês retroagido.

Dim dataRetroativa as String
Dim dataAtual as String

dataAtual = Format$(Now, [Ô]dd/mm/yyyy[Ô])
dataRetroativa = DateAdd([Ô]m[Ô], -6, CDate(dataAtual))

dataRetroativa = Format(dataRetroativa,[Ô]MM/YYYY[Ô])
dataRetroativa = [Ô]01/[Ô] & dataRetroativa

Por que isso?

Se você fizer sua no dia 10/12/2012 a variável [Ô]dataRetroativa[Ô] será 10/06/2012.
Mas se você quer que traga tudo a partir do dia 1 terá quer formata-lá.

Se o campo em sua tabela for do tipo DATE mude as variáveis de STRING para DATE antes de rodar o select

OMAR2011 02/01/2013 14:44:50
#416629
Vejam o que vocês acham disto.
Teste.

Private Sub Command1_Click()
Text5.Text = Text5 + 30
Text4.Text = Date - Val(Text5.Text)
Text3.Text = Format(Text4.Text, [Ô]mmmm[Ô])
Text2.Text = Format(Text4.Text, [Ô]mm[Ô])

End Sub

Private Sub Form_Load()
Text5.Text = 0
End Sub
VELDRAME 02/01/2013 15:08:30
#416631
Citação:

:
Vejam o que vocês acham disto.
Teste.

Private Sub Command1_Click()
Text5.Text = Text5 + 30
Text4.Text = Date - Val(Text5.Text)
Text3.Text = Format(Text4.Text, [Ô]mmmm[Ô])
Text2.Text = Format(Text4.Text, [Ô]mm[Ô])

End Sub

Private Sub Form_Load()
Text5.Text = 0
End Sub



Faz assim.
Private Sub Command1_Click()
Text5.Text = Text5 + 30
Text4.Text = DateAdd([Ô]d[Ô], -Val(Text5.Text), Date)
Text3.Text = Format(Text4.Text, [Ô]mmmm[Ô])
Text2.Text = Format(Text4.Text, [Ô]mm[Ô])
End Sub

Evite ficar fazendo [Ô]GATOS[Ô], isso deixa o código sujo.
Para que fazer isso: [Ô][txt-color=#e80000]Date - Val(Text5.Text)[/txt-color][Ô] se tem uma função que já efetua esse cálculo.
OMAR2011 02/01/2013 18:37:07
#416643
Veldrame. Então que fez o gato foi [txt-color=#e80000] Luís Carlos Ballaminut[/txt-color] porque foi retirado de uma apostila de vb
feita por ele.
Já que foi grosseiro da sua parte,chinga o [txt-color=#e80000] Luís Carlos Ballaminut[/txt-color] porque peguei da apostila dele.
Valeu Maluco.
Inté.
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas