COMANDO INPUT E DATAS
Olá pessoal!
Através de 3 combo.tex estou solicitando do usuário valores de datas, ou seja, um combo.text é inserido o valor de dias (1 a 31 dias), no outro combo.text é inserido um valor de mês (Jan a Dez) e na terceria combo.tex é inserido o valor de ano (1980 a 2050). Segue abaixo o código fonte:
Dim dia_ac, mes_ac, ano_ac, dif_data As String
Dim data_ac As Date
dia_ac = Combo1.Text
mes_ac = Combo2.Text
ano_ac = Combo3.Text
If mes_ac = "Jan" Then
mes_ac = "01"
End If
If mes_ac = "Fev" Then
mes_ac = "02"
End If
If mes_ac = "Mar" Then
mes_ac = "03"
End If
If mes_ac = "Abr" Then
mes_ac = "04"
End If
If mes_ac = "Mai" Then
mes_ac = "05"
End If
If mes_ac = "Jun" Then
mes_ac = "06"
End If
If mes_ac = "Jul" Then
mes_ac = "07"
End If
If mes_ac = "Ago" Then
mes_ac = "08"
End If
If mes_ac = "Set" Then
mes_ac = "09"
End If
If mes_ac = "Out" Then
mes_ac = "10"
End If
If mes_ac = "Nov" Then
mes_ac = "11"
End If
If mes_ac = "Dez" Then
mes_ac = "12"
End If
Posteriormente eu pego estes 3 valores inseridos e os transformo numa data, assim:
data_ac = Str(dia_ac) + Str(mes_ac) + Str(ano_ac)
E logo a seguir eu calculo a diferenca entre a data atual e a data inserida, assim:
dif_data = Date - data_ac
Logo a seguir eu insiro os seguintes valores num arquivo de texto:
Open "C:\aicardo.txt" For Output As #1
Print #1, dif_data, data_ac, Date
Close #1
Estranhei quando observei que a data no arquivo de texto estava da seguinte forma:
366 24/11/03 24/11/04
onde 366 é o resultado da subtracão e os dois valores seguintes são as datas.
[txt-color=#ff0000]Porque os dados no arquivo estão assim e não assim:[/txt-color]
366 24/11/2003 24/11/2004
Bom, para o próximo passo eu preciso sanar esta dúvida que não quer me deixar sossegado! Alguém poderia me ajudar?!
Abraços
Através de 3 combo.tex estou solicitando do usuário valores de datas, ou seja, um combo.text é inserido o valor de dias (1 a 31 dias), no outro combo.text é inserido um valor de mês (Jan a Dez) e na terceria combo.tex é inserido o valor de ano (1980 a 2050). Segue abaixo o código fonte:
Dim dia_ac, mes_ac, ano_ac, dif_data As String
Dim data_ac As Date
dia_ac = Combo1.Text
mes_ac = Combo2.Text
ano_ac = Combo3.Text
If mes_ac = "Jan" Then
mes_ac = "01"
End If
If mes_ac = "Fev" Then
mes_ac = "02"
End If
If mes_ac = "Mar" Then
mes_ac = "03"
End If
If mes_ac = "Abr" Then
mes_ac = "04"
End If
If mes_ac = "Mai" Then
mes_ac = "05"
End If
If mes_ac = "Jun" Then
mes_ac = "06"
End If
If mes_ac = "Jul" Then
mes_ac = "07"
End If
If mes_ac = "Ago" Then
mes_ac = "08"
End If
If mes_ac = "Set" Then
mes_ac = "09"
End If
If mes_ac = "Out" Then
mes_ac = "10"
End If
If mes_ac = "Nov" Then
mes_ac = "11"
End If
If mes_ac = "Dez" Then
mes_ac = "12"
End If
Posteriormente eu pego estes 3 valores inseridos e os transformo numa data, assim:
data_ac = Str(dia_ac) + Str(mes_ac) + Str(ano_ac)
E logo a seguir eu calculo a diferenca entre a data atual e a data inserida, assim:
dif_data = Date - data_ac
Logo a seguir eu insiro os seguintes valores num arquivo de texto:
Open "C:\aicardo.txt" For Output As #1
Print #1, dif_data, data_ac, Date
Close #1
Estranhei quando observei que a data no arquivo de texto estava da seguinte forma:
366 24/11/03 24/11/04
onde 366 é o resultado da subtracão e os dois valores seguintes são as datas.
[txt-color=#ff0000]Porque os dados no arquivo estão assim e não assim:[/txt-color]
366 24/11/2003 24/11/2004
Bom, para o próximo passo eu preciso sanar esta dúvida que não quer me deixar sossegado! Alguém poderia me ajudar?!
Abraços
Delete
Tem um jeito mais fácil de se fazer isto, armazene na própria ComboBox.
Command1 e Label1 foram inseridos só para testes
cboDia, cboMes e cboAno são os Combos que serão utilizados para as datas.
O Exemplo acima funcionou corretamente, veja que são armazenados os valores dos meses no ItemData, é esta a finalidade desta Propertie no ComboBox e na ListBox.A função DataFormatada já te retorna a String.
Até breve
[s92]
Tem um jeito mais fácil de se fazer isto, armazene na própria ComboBox.
Command1 e Label1 foram inseridos só para testes
cboDia, cboMes e cboAno são os Combos que serão utilizados para as datas.
Private Sub Command1_Click()
'---- Para validar se todas as datas foram selecionadas
If cboDia.ListIndex = -1 Or cboMes.ListIndex = -1 Or cboAno.ListIndex = -1 Then Exit Sub
Label1.Caption = DataFormatada(cboDia.Text, cboMes.ItemData(cboMes.ListIndex), cboAno)
End Sub
Private Sub Form_Load()
Dim i As Integer
'----- Combo dos Dias -------------
cboDia.Clear
For i = 1 To 31
cboDia.AddItem i
Next
'----- Combo dos Meses ----------
With cboMes
.Clear
.AddItem "Jan"
.ItemData(.NewIndex) = 1
.AddItem "Fev"
.ItemData(.NewIndex) = 2
.AddItem "Mar"
.ItemData(.NewIndex) = 3
.AddItem "Abr"
.ItemData(.NewIndex) = 4
.AddItem "Mai"
.ItemData(.NewIndex) = 5
.AddItem "Jun"
.ItemData(.NewIndex) = 6
.AddItem "Jul"
.ItemData(.NewIndex) = 7
.AddItem "Ago"
.ItemData(.NewIndex) = 8
.AddItem "Set"
.ItemData(.NewIndex) = 9
.AddItem "Out"
.ItemData(.NewIndex) = 10
.AddItem "Nov"
.ItemData(.NewIndex) = 11
.AddItem "Dez"
.ItemData(.NewIndex) = 12
End With
'------ Combo dos Anos ----------
cboAno.Clear
For i = 1980 To 2050
cboAno.AddItem i
Next
End Sub
Function DataFormatada(sDia As String, sMes As String, sAno As String) As String
If Len(sDia) < 1 Or Len(sMes) < 1 Or Len(sAno) < 1 Then Exit Function
DataFormatada = Format(sDia & "/" & sMes & "/" & sAno, "dd/mm/yyyy")
End Function
O Exemplo acima funcionou corretamente, veja que são armazenados os valores dos meses no ItemData, é esta a finalidade desta Propertie no ComboBox e na ListBox.A função DataFormatada já te retorna a String.
Até breve
[s92]
Tópico encerrado , respostas não são mais permitidas