ERRO AO CARREGAR O MSFLEXGRID
Uso um software de imobiliária a um bom tempo, onde a tabela de clientes carrega um MSFlexGrid, só que de uma semana para cá começou a dar um erro ao carregar a tabela de clientes. Como não programo a muito tempo e estou totalmente travado, rs, estou com dificuldade de resolver.
Run-time error [ô]381[ô]
Subscript out of range
Código abaixo.
Public Sub carrega()
Dim i
Dim somavenda, somacomissao, tot, totcom As Currency
With MSFlexGrid1
.Col = 0
.Row = 0
.Text = [Ô] CÓDIGO [Ô]
.Col = 1
.Row = 0
.Text = [Ô] CLIENTE[Ô]
.Col = 2
.Row = 0
.Text = [Ô] ENDEREÇO[Ô]
.Col = 3
.Row = 0
.Text = [Ô] BAIRRO[Ô]
.Col = 4
.Row = 0
.Text = [Ô] CIDADE[Ô]
.Col = 5
.Row = 0
.Text = [Ô] CEP[Ô]
.Col = 6
.Row = 0
.Text = [Ô] UF[Ô]
.Col = 7
.Row = 0
.Text = [Ô] DATA NASC.[Ô]
.Col = 8
.Row = 0
.Text = [Ô] RG/I.E.[Ô]
.Col = 9
.Row = 0
.Text = [Ô] CPF[Ô]
.Col = 10
.Row = 0
.Text = [Ô] TELEFONES[Ô]
.Col = 11
.Row = 0
.Text = [Ô] CELULAR[Ô]
.Col = 12
.Row = 0
.Text = [Ô] E-MAIL[Ô]
.Col = 13
.Row = 0
.Text = [Ô] DATA VENDA[Ô]
.Col = 14
.Row = 0
.Text = [Ô] DESCRIÇÃO DO IMÓVEL[Ô]
.Col = 15
.Row = 0
.Text = [Ô] TIPO IMÓVEL[Ô]
.Col = 16
.Row = 0
.Text = [Ô] Nº QUARTOS[Ô]
.Col = 17
.Row = 0
.Text = [Ô] Nº SUÃTES[Ô]
.Col = 18
.Row = 0
.Text = [Ô] CATEGORIA[Ô]
.Col = 19
.Row = 0
.Text = [Ô] ENDEREÇO DO IMÓVEL[Ô]
.Col = 20
.Row = 0
.Text = [Ô] NOME DO CONDOMÃNIO[Ô]
.Col = 21
.Row = 0
.Text = [Ô] VALOR VENDA[Ô]
.Col = 22
.Row = 0
.Text = [Ô] PERC.(%)[Ô]
.Col = 23
.Row = 0
.Text = [Ô] VALOR COMISSÃO[Ô]
.Col = 24
.Row = 0
.Text = [Ô] CORRETOR[Ô]
.Col = 25
.Row = 0
.Text = [Ô] Nº CRECI[Ô]
End With
MSFlexGrid1.ColWidth(0) = 1200
MSFlexGrid1.ColWidth(1) = 5000
MSFlexGrid1.ColWidth(2) = 5000
MSFlexGrid1.ColWidth(3) = 2000
MSFlexGrid1.ColWidth(4) = 2000
MSFlexGrid1.ColWidth(5) = 1000
MSFlexGrid1.ColWidth(6) = 400
MSFlexGrid1.ColWidth(7) = 1200
MSFlexGrid1.ColWidth(8) = 1500
MSFlexGrid1.ColWidth(9) = 1700
MSFlexGrid1.ColWidth(10) = 3000
MSFlexGrid1.ColWidth(11) = 1800
MSFlexGrid1.ColWidth(12) = 4000
MSFlexGrid1.ColWidth(13) = 1200
MSFlexGrid1.ColWidth(14) = 11000
MSFlexGrid1.ColWidth(15) = 1700
MSFlexGrid1.ColWidth(16) = 1300
MSFlexGrid1.ColWidth(17) = 1300
MSFlexGrid1.ColWidth(18) = 1700
MSFlexGrid1.ColWidth(19) = 5000
MSFlexGrid1.ColWidth(20) = 2200
MSFlexGrid1.ColWidth(21) = 2200
MSFlexGrid1.ColWidth(22) = 900
MSFlexGrid1.ColWidth(23) = 2200
MSFlexGrid1.ColWidth(24) = 2200
MSFlexGrid1.ColWidth(25) = 1800
MSFlexGrid1.FixedCols = 0
[ô]-----------------------------------------------------------------------
For i = 0 To tb_cli.Fields.Count - 1
Next
MSFlexGrid1.Rows = tb_cli.RecordCount + 1
i = 1
MSFlexGrid1.Redraw = False
Do While Not tb_cli.EOF
tot = tb_cli([Ô]valor[Ô])
totcom = tb_cli([Ô]valorcomissao[Ô])
MSFlexGrid1.TextMatrix(i, 0) = tb_cli([Ô]codigo[Ô])
MSFlexGrid1.TextMatrix(i, 1) = tb_cli([Ô]nome[Ô])
MSFlexGrid1.TextMatrix(i, 2) = tb_cli([Ô]endereco[Ô])
MSFlexGrid1.TextMatrix(i, 3) = tb_cli([Ô]bairro[Ô])
MSFlexGrid1.TextMatrix(i, 4) = tb_cli([Ô]cidade[Ô])
MSFlexGrid1.TextMatrix(i, 5) = tb_cli([Ô]cep[Ô])
MSFlexGrid1.TextMatrix(i, 6) = tb_cli([Ô]uf[Ô])
MSFlexGrid1.TextMatrix(i, 7) = tb_cli([Ô]dtnasc[Ô])
MSFlexGrid1.TextMatrix(i, 8) = tb_cli([Ô]rg[Ô])
MSFlexGrid1.TextMatrix(i, 9) = tb_cli([Ô]cpf_cnpj[Ô])
MSFlexGrid1.TextMatrix(i, 10) = tb_cli([Ô]telefone[Ô])
MSFlexGrid1.TextMatrix(i, 11) = tb_cli([Ô]celular[Ô])
MSFlexGrid1.TextMatrix(i, 12) = tb_cli([Ô]email[Ô])
MSFlexGrid1.TextMatrix(i, 13) = tb_cli([Ô]dtven[Ô])
MSFlexGrid1.TextMatrix(i, 14) = tb_cli([Ô]obs[Ô])
MSFlexGrid1.TextMatrix(i, 15) = tb_cli([Ô]tipoimovel[Ô])
MSFlexGrid1.TextMatrix(i, 16) = tb_cli([Ô]nquartos[Ô])
MSFlexGrid1.TextMatrix(i, 17) = tb_cli([Ô]nsuites[Ô])
MSFlexGrid1.TextMatrix(i, 18) = tb_cli([Ô]categoria[Ô])
MSFlexGrid1.TextMatrix(i, 19) = tb_cli([Ô]endimovel[Ô])
MSFlexGrid1.TextMatrix(i, 20) = tb_cli([Ô]condominio[Ô])
MSFlexGrid1.TextMatrix(i, 21) = Format(tot, [Ô]###,##0.00[Ô])
MSFlexGrid1.TextMatrix(i, 22) = tb_cli([Ô]percentual[Ô])
MSFlexGrid1.TextMatrix(i, 23) = Format(totcom, [Ô]###,##0.00[Ô])
MSFlexGrid1.TextMatrix(i, 24) = tb_cli([Ô]corretor[Ô])
MSFlexGrid1.TextMatrix(i, 25) = tb_cli([Ô]creci[Ô])
somavenda = somavenda + CCur(tb_cli([Ô]valor[Ô]))
somacomissao = somacomissao + CCur(tb_cli([Ô]valorcomissao[Ô]))
lblsomavenda.Caption = [Ô] Total Geral de Vendas: [Ô] & Format(somavenda, [Ô]###,##0.00[Ô])
lblsomacomis.Caption = [Ô] Total Geral de Comissão: [Ô] & Format(somacomissao, [Ô]###,##0.00[Ô])
i = i + 1
tb_cli.MoveNext
Loop
MSFlexGrid1.Redraw = True
ZebraFlex MSFlexGrid1, &HE0E0E0
End Sub
Run-time error [ô]381[ô]
Subscript out of range
Código abaixo.
Public Sub carrega()
Dim i
Dim somavenda, somacomissao, tot, totcom As Currency
With MSFlexGrid1
.Col = 0
.Row = 0
.Text = [Ô] CÓDIGO [Ô]
.Col = 1
.Row = 0
.Text = [Ô] CLIENTE[Ô]
.Col = 2
.Row = 0
.Text = [Ô] ENDEREÇO[Ô]
.Col = 3
.Row = 0
.Text = [Ô] BAIRRO[Ô]
.Col = 4
.Row = 0
.Text = [Ô] CIDADE[Ô]
.Col = 5
.Row = 0
.Text = [Ô] CEP[Ô]
.Col = 6
.Row = 0
.Text = [Ô] UF[Ô]
.Col = 7
.Row = 0
.Text = [Ô] DATA NASC.[Ô]
.Col = 8
.Row = 0
.Text = [Ô] RG/I.E.[Ô]
.Col = 9
.Row = 0
.Text = [Ô] CPF[Ô]
.Col = 10
.Row = 0
.Text = [Ô] TELEFONES[Ô]
.Col = 11
.Row = 0
.Text = [Ô] CELULAR[Ô]
.Col = 12
.Row = 0
.Text = [Ô] E-MAIL[Ô]
.Col = 13
.Row = 0
.Text = [Ô] DATA VENDA[Ô]
.Col = 14
.Row = 0
.Text = [Ô] DESCRIÇÃO DO IMÓVEL[Ô]
.Col = 15
.Row = 0
.Text = [Ô] TIPO IMÓVEL[Ô]
.Col = 16
.Row = 0
.Text = [Ô] Nº QUARTOS[Ô]
.Col = 17
.Row = 0
.Text = [Ô] Nº SUÃTES[Ô]
.Col = 18
.Row = 0
.Text = [Ô] CATEGORIA[Ô]
.Col = 19
.Row = 0
.Text = [Ô] ENDEREÇO DO IMÓVEL[Ô]
.Col = 20
.Row = 0
.Text = [Ô] NOME DO CONDOMÃNIO[Ô]
.Col = 21
.Row = 0
.Text = [Ô] VALOR VENDA[Ô]
.Col = 22
.Row = 0
.Text = [Ô] PERC.(%)[Ô]
.Col = 23
.Row = 0
.Text = [Ô] VALOR COMISSÃO[Ô]
.Col = 24
.Row = 0
.Text = [Ô] CORRETOR[Ô]
.Col = 25
.Row = 0
.Text = [Ô] Nº CRECI[Ô]
End With
MSFlexGrid1.ColWidth(0) = 1200
MSFlexGrid1.ColWidth(1) = 5000
MSFlexGrid1.ColWidth(2) = 5000
MSFlexGrid1.ColWidth(3) = 2000
MSFlexGrid1.ColWidth(4) = 2000
MSFlexGrid1.ColWidth(5) = 1000
MSFlexGrid1.ColWidth(6) = 400
MSFlexGrid1.ColWidth(7) = 1200
MSFlexGrid1.ColWidth(8) = 1500
MSFlexGrid1.ColWidth(9) = 1700
MSFlexGrid1.ColWidth(10) = 3000
MSFlexGrid1.ColWidth(11) = 1800
MSFlexGrid1.ColWidth(12) = 4000
MSFlexGrid1.ColWidth(13) = 1200
MSFlexGrid1.ColWidth(14) = 11000
MSFlexGrid1.ColWidth(15) = 1700
MSFlexGrid1.ColWidth(16) = 1300
MSFlexGrid1.ColWidth(17) = 1300
MSFlexGrid1.ColWidth(18) = 1700
MSFlexGrid1.ColWidth(19) = 5000
MSFlexGrid1.ColWidth(20) = 2200
MSFlexGrid1.ColWidth(21) = 2200
MSFlexGrid1.ColWidth(22) = 900
MSFlexGrid1.ColWidth(23) = 2200
MSFlexGrid1.ColWidth(24) = 2200
MSFlexGrid1.ColWidth(25) = 1800
MSFlexGrid1.FixedCols = 0
[ô]-----------------------------------------------------------------------
For i = 0 To tb_cli.Fields.Count - 1
Next
MSFlexGrid1.Rows = tb_cli.RecordCount + 1
i = 1
MSFlexGrid1.Redraw = False
Do While Not tb_cli.EOF
tot = tb_cli([Ô]valor[Ô])
totcom = tb_cli([Ô]valorcomissao[Ô])
MSFlexGrid1.TextMatrix(i, 0) = tb_cli([Ô]codigo[Ô])
MSFlexGrid1.TextMatrix(i, 1) = tb_cli([Ô]nome[Ô])
MSFlexGrid1.TextMatrix(i, 2) = tb_cli([Ô]endereco[Ô])
MSFlexGrid1.TextMatrix(i, 3) = tb_cli([Ô]bairro[Ô])
MSFlexGrid1.TextMatrix(i, 4) = tb_cli([Ô]cidade[Ô])
MSFlexGrid1.TextMatrix(i, 5) = tb_cli([Ô]cep[Ô])
MSFlexGrid1.TextMatrix(i, 6) = tb_cli([Ô]uf[Ô])
MSFlexGrid1.TextMatrix(i, 7) = tb_cli([Ô]dtnasc[Ô])
MSFlexGrid1.TextMatrix(i, 8) = tb_cli([Ô]rg[Ô])
MSFlexGrid1.TextMatrix(i, 9) = tb_cli([Ô]cpf_cnpj[Ô])
MSFlexGrid1.TextMatrix(i, 10) = tb_cli([Ô]telefone[Ô])
MSFlexGrid1.TextMatrix(i, 11) = tb_cli([Ô]celular[Ô])
MSFlexGrid1.TextMatrix(i, 12) = tb_cli([Ô]email[Ô])
MSFlexGrid1.TextMatrix(i, 13) = tb_cli([Ô]dtven[Ô])
MSFlexGrid1.TextMatrix(i, 14) = tb_cli([Ô]obs[Ô])
MSFlexGrid1.TextMatrix(i, 15) = tb_cli([Ô]tipoimovel[Ô])
MSFlexGrid1.TextMatrix(i, 16) = tb_cli([Ô]nquartos[Ô])
MSFlexGrid1.TextMatrix(i, 17) = tb_cli([Ô]nsuites[Ô])
MSFlexGrid1.TextMatrix(i, 18) = tb_cli([Ô]categoria[Ô])
MSFlexGrid1.TextMatrix(i, 19) = tb_cli([Ô]endimovel[Ô])
MSFlexGrid1.TextMatrix(i, 20) = tb_cli([Ô]condominio[Ô])
MSFlexGrid1.TextMatrix(i, 21) = Format(tot, [Ô]###,##0.00[Ô])
MSFlexGrid1.TextMatrix(i, 22) = tb_cli([Ô]percentual[Ô])
MSFlexGrid1.TextMatrix(i, 23) = Format(totcom, [Ô]###,##0.00[Ô])
MSFlexGrid1.TextMatrix(i, 24) = tb_cli([Ô]corretor[Ô])
MSFlexGrid1.TextMatrix(i, 25) = tb_cli([Ô]creci[Ô])
somavenda = somavenda + CCur(tb_cli([Ô]valor[Ô]))
somacomissao = somacomissao + CCur(tb_cli([Ô]valorcomissao[Ô]))
lblsomavenda.Caption = [Ô] Total Geral de Vendas: [Ô] & Format(somavenda, [Ô]###,##0.00[Ô])
lblsomacomis.Caption = [Ô] Total Geral de Comissão: [Ô] & Format(somacomissao, [Ô]###,##0.00[Ô])
i = i + 1
tb_cli.MoveNext
Loop
MSFlexGrid1.Redraw = True
ZebraFlex MSFlexGrid1, &HE0E0E0
End Sub
Veja se este link te ajuda
http://www.scriptbrasil.com.br/forum/topic/120710-erro-no-flex-grid-subscript-out-of-range/
http://www.scriptbrasil.com.br/forum/topic/120710-erro-no-flex-grid-subscript-out-of-range/
Citação::
Veja se este link te ajuda
http://www.scriptbrasil.com.br/forum/topic/120710-erro-no-flex-grid-subscript-out-of-range/
Já tinha visto este link. Mas não modifiquei o código e muito menos estou tentando acessar um Ãndice inexistente. Também não modifiquei o BD.
Mas obrigado LH.
amigo tente a seguinte modificação no código, não se preocupe ela não irá alterar o resultado final, apenas irá acabar com o erro de vez
Public Sub carrega()
Dim somavenda, somacomissao, tot, totcom As Currency
With MSFlexGrid1
.Rows = 1
.Cols = 26
..FormatString = [Ô] CÓDIGO | CLIENTE | ENDEREÇO | BAIRRO | CIDADE | CEP | UF | DATA NASC. | RG/I.E. | CPF | TELEFONES | [Ô] & _
[Ô] CELULAR | E-MAIL | DATA VENDA | DESCRIÇÃO DO IMÓVEL | TIPO IMÓVEL | Nº QUARTOS | Nº SUÃTES |[Ô] & _
[Ô] CATEGORIA | ENDEREÇO DO IMÓVEL | NOME DO CONDOMÃNIO| VALOR VENDA | PERC.(%) |[Ô] & _
[Ô] VALOR COMISSÃO| CORRETOR | Nº CRECI[Ô]
.ColWidth(0) = 1200
.ColWidth(1) = 5000
.ColWidth(2) = 5000
.ColWidth(3) = 2000
.ColWidth(4) = 2000
.ColWidth(5) = 1000
.ColWidth(6) = 400
.ColWidth(7) = 1200
.ColWidth(8) = 1500
.ColWidth(9) = 1700
.ColWidth(10) = 3000
.ColWidth(11) = 1800
.ColWidth(12) = 4000
.ColWidth(13) = 1200
.ColWidth(14) = 11000
.ColWidth(15) = 1700
.ColWidth(16) = 1300
.ColWidth(17) = 1300
.ColWidth(18) = 1700
.ColWidth(19) = 5000
.ColWidth(20) = 2200
.ColWidth(21) = 2200
.ColWidth(22) = 900
.ColWidth(23) = 2200
.ColWidth(24) = 2200
.ColWidth(25) = 1800
.FixedCols = 0
[ô]-----------------------------------------------------------------------
.Redraw = False
Do While Not tb_cli.EOF
.Rows = .Rows + 1
tot = tb_cli([Ô]valor[Ô])
totcom = tb_cli([Ô]valorcomissao[Ô])
.TextMatrix(.Rows - 1, 0) = tb_cli([Ô]codigo[Ô])
.TextMatrix(.Rows - 1, 1) = tb_cli([Ô]nome[Ô])
.TextMatrix(.Rows - 1, 2) = tb_cli([Ô]endereco[Ô])
.TextMatrix(.Rows - 1, 3) = tb_cli([Ô]bairro[Ô])
.TextMatrix(.Rows - 1, 4) = tb_cli([Ô]cidade[Ô])
.TextMatrix(.Rows - 1, 5) = tb_cli([Ô]cep[Ô])
.TextMatrix(.Rows - 1, 6) = tb_cli([Ô]uf[Ô])
.TextMatrix(.Rows - 1, 7) = tb_cli([Ô]dtnasc[Ô])
.TextMatrix(.Rows - 1, 8) = tb_cli([Ô]rg[Ô])
.TextMatrix(.Rows - 1, 9) = tb_cli([Ô]cpf_cnpj[Ô])
.TextMatrix(.Rows - 1, 10) = tb_cli([Ô]telefone[Ô])
.TextMatrix(.Rows - 1, 11) = tb_cli([Ô]celular[Ô])
.TextMatrix(.Rows - 1, 12) = tb_cli([Ô]email[Ô])
.TextMatrix(.Rows - 1, 13) = tb_cli([Ô]dtven[Ô])
.TextMatrix(.Rows - 1, 14) = tb_cli([Ô]obs[Ô])
.TextMatrix(.Rows - 1, 15) = tb_cli([Ô]tipoimovel[Ô])
.TextMatrix(.Rows - 1, 16) = tb_cli([Ô]nquartos[Ô])
.TextMatrix(.Rows - 1, 17) = tb_cli([Ô]nsuites[Ô])
.TextMatrix(.Rows - 1, 18) = tb_cli([Ô]categoria[Ô])
.TextMatrix(.Rows - 1, 19) = tb_cli([Ô]endimovel[Ô])
.TextMatrix(.Rows - 1, 20) = tb_cli([Ô]condominio[Ô])
.TextMatrix(.Rows - 1, 21) = Format(tot, [Ô]###,##0.00[Ô])
.TextMatrix(.Rows - 1, 22) = tb_cli([Ô]percentual[Ô])
.TextMatrix(.Rows - 1, 23) = Format(totcom, [Ô]###,##0.00[Ô])
.TextMatrix(.Rows - 1, 24) = tb_cli([Ô]corretor[Ô])
.TextMatrix(.Rows - 1, 25) = tb_cli([Ô]creci[Ô])
somavenda = somavenda + CCur(tb_cli([Ô]valor[Ô]))
somacomissao = somacomissao + CCur(tb_cli([Ô]valorcomissao[Ô]))
lblsomavenda.Caption = [Ô] Total Geral de Vendas: [Ô] & Format(somavenda, [Ô]###,##0.00[Ô])
lblsomacomis.Caption = [Ô] Total Geral de Comissão: [Ô] & Format(somacomissao, [Ô]###,##0.00[Ô])
tb_cli.MoveNext
Loop
.Redraw = True
End With
ZebraFlex MSFlexGrid1, &HE0E0E0
End Sub
Citação::
:
Veja se este link te ajuda
http://www.scriptbrasil.com.br/forum/topic/120710-erro-no-flex-grid-subscript-out-of-range/
Já tinha visto este link. Mas não modifiquei o código e muito menos estou tentando acessar um Ãndice inexistente. Também não modifiquei o BD.
Mas obrigado LH.
Ok Marcelo vou verificar e passo o resultado.
Abs
Tópico encerrado , respostas não são mais permitidas