1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Datagrid VB 6 erro

Discussão em 'Programação' iniciada por pepatusco, 3 de Julho de 2008. (Respostas: 3; Visualizações: 1830)

  1. Boas pessoal!!!!!
    Aqui estou a pedir ajuda! :002:
    É assim eu tenho um formulário em visual basic 6.0 que mostra através de um ADODC os dados de obras efectuadas por uma firma!
    Dentro desse formulário eu tenho um DataGrid que mostra os números dos funcionários da firma que tiveram nessa obra e mostra também o numero de horas que la tiveram!
    O meu datagrid mostra 8 registos, quando são mais que 8 aparece-me o scrollbar.
    Neste mesmo form eu tenho um botão que vai procurar o numero da pessoa no datagrid e procura o registo num outro adodc o numero do respectivo funcionário e depois multiplica o valor que ele ganha por hora (definido na tabela funcionários no 2º adodc) por o campo que esta no datagrid.
    O meu problema é que isto é calculado dentro de um ciclo for que corre linha por linha do datagrid e calcula os valores. Quando eu só tenho 8 ou menos registos no datagrid a conta bate certo mas quando são mais do que 8 em que me aparece o scrollbar quando chega ao fim o VB dá-me um erro -> erro 6148 - Invalid Row Number.
    Eu não sei como corrigir este erro. Alguém me pode ajudar?
    Para complicar, ou não mais a situação, vou deixar aqui o código do botão:8|

    Código:
    Private Sub Command12_Click()
    conta = 0
    a = 0
    If MsgBox("Tem a certeza que deseja calcular os custos de mão de obra?", vbYesNo, "Calculos") = vbYes Then
    For i = 0 To grdDataGrid.ApproxCount - 1
    grdDataGrid.Row = (a)
    MsgBox (grdDataGrid.CurrentCellVisible)
    grdDataGrid.ScrollBars = dbgAutomatic
    a = a + 1
    Adodc2.Recordset.MoveFirst
    Do While grdDataGrid.Columns(2).Text <> Text4.Text
    If Adodc2.Recordset.EOF Then
    GoTo sair
    Else
    Adodc2.Recordset.MoveNext
    End If
    Loop
    Operarios.verifica2
    conta = conta + (grdDataGrid.Columns(5) * Text5.Text) + (grdDataGrid.Columns(6) * Operarios.Text5.Text)
    conta = conta + (grdDataGrid.Columns(7) * Text6.Text) + (grdDataGrid.Columns(8) * Text7.Text)
    conta = conta + (grdDataGrid.Columns(9) * Operarios.Text8.Text) + (grdDataGrid.Columns(10) * Operarios.Text9.Text)
    Next i
    MsgBox (conta)
    End If
    sair:
    End Sub
    Obrigado malta e desculpem o incomodo!!!!!!!
     
    Última edição: 3 de Julho de 2008
  2. AJUDA?????????????? por favor!!!!!!!!!!!!!!!!!!!!!!!!!!:'(
     
  3. naoliveira

    naoliveira Power Member

    O que está a acontecer é que com o data grid só consegues somar até ao limite de linhas visiveis, no teu caso são 8. Para corrigir esse problema podes fazer o scroll via código ou então usares os dados do recordset para fazer a soma.
     
  4. e qual é o codigo para faxer o scroll ????????
     

Partilhar esta Página