IGNORAR TEXTBOX VAZIO
Tenho um programa que tem vários textbox com array (txtRelat(0), txtRelat(1), txtRelat(2), txtRelat(3), etc...) e gostaria de na hora de salvar, ignorar aqueles que estivessem vazios e escondê-los, tudo isso num código o mais enxuto possÃvel. Uma opção que achei foi mostrar e esconder esses controles usando visible (true/false) mas o código ficou muito grande e complicado, então gostaria que alguém me ajudasse.
Vou ser mais especÃfico. No programa, em determinado momento o cliente vai ter que escolher financiar sua compra. Como eu ainda não sei quantas parcelas ele vai escolher, disponibilizei 24 saÃdas (textbox) mas ele pode por exemplo escolher só 4. O resultado já tá saÃndo de acordo com a opção, no caso só nos 4, então gostaria de depois que eu já tiver esse resultado, esconder ou inabilitar esses 20 textbox restantes pra evitar erros do usuário, tudo isso de uma forma mais simples, com menos comandos, pois fazendo o teste de preenchimento usando o if, testando um a um pra ver se ta vazio, vai ficar muito grande.
Vou ser mais especÃfico. No programa, em determinado momento o cliente vai ter que escolher financiar sua compra. Como eu ainda não sei quantas parcelas ele vai escolher, disponibilizei 24 saÃdas (textbox) mas ele pode por exemplo escolher só 4. O resultado já tá saÃndo de acordo com a opção, no caso só nos 4, então gostaria de depois que eu já tiver esse resultado, esconder ou inabilitar esses 20 textbox restantes pra evitar erros do usuário, tudo isso de uma forma mais simples, com menos comandos, pois fazendo o teste de preenchimento usando o if, testando um a um pra ver se ta vazio, vai ficar muito grande.
Porque não disponibilizar um CONTROLE (COMBOBOX, LISTBOX, TEXTBOX, ...) para o usuário informar a QTDE DE PARCELAS, e em seguida uma rotina para mostrar somente a qtde selecionada?
O código seria somente um LAÇO.
Demo
Código fonte
[txt-color=#006400][ô] Mostrar/ocultar os controles com base no valor selecionado[/txt-color]
Dim i As Byte
For i = 0 To Text1.Count - 1
If i <= CByte(Combo1.Text) - 1 Then
Text1(i).Visible = True
Else
Text1(i).Visible = False
End If
Next
End Sub
O código seria somente um LAÇO.
Private Sub Combo1_Click()
Dim i As Byte
For i = 0 To Text1.Count - 1
If i <= CByte(Combo1.Text) - 1 Then
Text1(i).Visible = True
Else
Text1(i).Visible = False
End If
Next
End Sub
Private Sub Form_Load()
[txt-color=#006400][ô] Carregar o combo com os valores de 1 a 5[/txt-color]
Dim i As Byte
For i = 1 To 5
Combo1.AddItem i
Next
End Sub
Maravilha tecla. Deu certo, só que associado a esse comobo tem outros que terão o mesmo valor, tipo 4 prestações de 10. como faço pra transferir esse código pros outros textbox? Com esse deu certo porque não tem nenhum problema ficar a aparecendo uma lista com o valor das prestações que pode ser pré-determinado. Mas com o valor já é mais complicado pois embora eu saiba a quantidade de parcelas, não tem como determinar o valor, pois isso vai depender do valor da compra. Tem como associar a coluna das parcelas (vencimento) com a coluna do valor?
Posta uma imagem do que está relatando, fica mais fácil de entender e de ajudar.
Blz tecla, to postando a imagem. Escrevi o que preciso na própria figura.
Referente ao comentário que está no cÃrculo AMARELO... segue:
Private Sub Combo1_Click()
[txt-color=#006400][ô] Mostrar/ocultar os controles com base no valor selecionado[/txt-color]
Dim i As Byte
For i = 0 To Text1.Count - 1
If i <= CByte(Combo1.Text) - 1 Then
txtVencimento(i).Visible = True
txtValor(i).Visible = True
Else
txtVencimento(i).Visible = False
txtValor(i).Visible = False
End If
Next
End Sub
Tópico encerrado , respostas não são mais permitidas