IGNORAR TEXTBOX VAZIO

NETOCAZUZA 11/12/2009 09:52:18
#329508
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.
TECLA 11/12/2009 10:39:00
#329523
Resposta escolhida
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
    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
    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
    NETOCAZUZA 11/12/2009 12:24:56
    #329530
    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?
    TECLA 11/12/2009 14:27:27
    #329537
    Posta uma imagem do que está relatando, fica mais fácil de entender e de ajudar.
    NETOCAZUZA 11/12/2009 15:50:42
    #329543
    Blz tecla, to postando a imagem. Escrevi o que preciso na própria figura.
    TECLA 13/12/2009 13:10:22
    #329613
    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