AJUDEME COM MSFLEXGRID ADD ITEMS

MICROSCHEME 05/04/2010 23:35:21
#338649

Cara acho que esqueci de algo:

Você precisa também nas linhas que tem a váriavel i, substituti-la por .Row

. . .
NILTON.VIANNA 05/04/2010 23:50:19
#338650

Tentei Assim mais da erro na linha;
RS.Fields([Ô]Entrada[Ô]) = FG1.TextMatrix(i, 0)
??
NILTON.VIANNA 05/04/2010 23:53:08
#338651
Desculpe MICROSCHEME não endendi

(Você precisa também nas linhas que tem a váriavel i, substituti-la por .Row)

Grato Mesmo
MICROSCHEME 06/04/2010 00:00:21
#338652

Quando você de um for i tu tinha uma variavel i e tuas linhas ficaram assim; exemplo:

RS.Fields([Ô]Entrada[Ô]) = FG1.TextMatrix(i, 0)

e tem que ficar assim:

RS.Fields([Ô]Entrada[Ô]) = FG1.TextMatrix(.Row, 0)

Tenta esta alteraçãol de i po .Row em todas as linhas

. . .

NILTON.VIANNA 06/04/2010 00:02:53
#338654

[txt-color=#007100]MICROSCHEME acho que funcionou..[/txt-color]
vou fazer os testes para confirmar
Grato mesmo que aliviuuuu
MICROSCHEME 06/04/2010 00:03:16
#338655
Olha ai:

RS.Open [Ô]CadCaixID[Ô], CnSql, 1, 3
Dim i As Long
With FG1
[ô] Não guardar a ultima lina
.Row = .Rows - 1
RS.AddNew
RS.Fields([Ô]CaixaID[Ô]) = txtCaixaID.Text
RS.Fields([Ô]Vendedor[Ô]) = txtVendedor.Text
RS.Fields([Ô]Entrada[Ô]) = FG1.TextMatrix(.Row, 0) [ô]Coluna 0
RS.Fields([Ô]Quat[Ô]) = FG1.TextMatrix(.Row, 1) [ô]Coluna 2
RS.Fields([Ô]Descricao[Ô]) = FG1.TextMatrix(.Row, 2) [ô]Coluna 3
RS.Fields([Ô]Nome[Ô]) = FG1.TextMatrix(.Row, 3) [ô]Coluna 3
RS.Fields([Ô]Unitario[Ô]) = FG1.TextMatrix(.Row, 4) [ô]Coluna 3
RS.Fields([Ô]Debito[Ô]) = FG1.TextMatrix(.Row, 5) [ô]Coluna 4
RS.Fields([Ô]Credito[Ô]) = FG1.TextMatrix(.Row, 6) [ô]Coluna 5
RS.Update
End With
RS.Close


Estão substituidas as variaris i das linhas por .Row

NILTON.VIANNA 06/04/2010 00:30:26
#338656
FICOU ASSIM
RS.Open [Ô]CadCaixID[Ô], CnSql, 1, 3
Dim Row As Long
With FG1
[ô] Não guardar a ultima lina
.Row = .Rows - 1
RS.AddNew
RS.Fields([Ô]CaixaID[Ô]) = txtCaixaID.Text
RS.Fields([Ô]Vendedor[Ô]) = txtVendedor.Text
RS.Fields([Ô]Entrada[Ô]) = FG1.TextMatrix(.Row, 0)
RS.Fields([Ô]Quat[Ô]) = FG1.TextMatrix(.Row, 1)
RS.Fields([Ô]Descricao[Ô]) = FG1.TextMatrix(.Row, 2)
RS.Fields([Ô]Nome[Ô]) = FG1.TextMatrix(.Row, 3)
RS.Fields([Ô]Unitario[Ô]) = FG1.TextMatrix(.Row, 4)
RS.Fields([Ô]Debito[Ô]) = FG1.TextMatrix(.Row, 5)
RS.Fields([Ô]Credito[Ô]) = FG1.TextMatrix(.Row, 6)
RS.Update
End With
RS.Close

ROBIU 06/04/2010 05:59:14
#338657
Citação:

Não guardar a ultima lina
.Row = .Rows - 1


Esse Código posiciona na última linha. Só que esta linha é a linha do último registro incluido e não um novo registro. Antes você precisa incluir mais uma linha:

.Rows=.rows+1 [ô]Adiciona uma linha
.Row = .Rows - 1[ô]Vai para a linha adicionada


Se você vai incluir cada linha isoladamente na tabela, o correto seria você gravar o registro na tabela e depois exibir na grid e não o contrário. Da forma que você colocou no início, os dados deveriam ser armazenados na grid e quando finalizasse, todos seriam incluídos na tabela de uma só vez com For ...Next. Da forma que está fazendo, vai dificultar a manutenção e pode gerar erro de registros. Imagine que você precise alterar ou excluir algum registro. Pode ser que o que aparece na grid não seja o que está na tabela pois você vai fazer a sincronização manual: Colocar no grid e gravar na tabela, apagar do grid - apagar da tabela...
Portanto defina primeiro como você vai salvar os registros:
1 - Vou salvar todas linhas da grid de uma vez quando finalizar a operação - Guarda os dados na grid e salva depois
2 - Vou salvar cada linha separadamente - Salva na tabela e exibe no grid. Os dados do grid devem ser os dados salvos.

MICROSCHEME 06/04/2010 10:33:35
#338671

A última indagação do Nilton Viana foi essa:

[ô]Sera que tem como fazer Update, salvado somente a linha que acrecentou conforme seu exemplo..

Robiu acrescentou:

.Rows=.rows+1 [ô]Adiciona uma linha
.Row = .Rows - 1[ô]Vai para a linha adicionada

Realmente .Rows=.Rows + 1 adiciona uma linha na grid e .Row = .Rows - 1 vai para a linha última adicionada; se é preciso
acrescentar dados na grid a primeira opção é a correta mas, se é preciso salvar no banco os dados acrescentados
na última linha da grid a segunda opção é a linha que tu precisa pra gravar os dados, mas existe razão na observação do colega de que o correto primeiramente é gravar os dados e depois exibi-los na grid

blz . . .

NILTON.VIANNA 06/04/2010 11:36:48
#338685

NO CASO SÃO 20 CAIXAIS
Por isso que estou testando
Conforme o Exemplo do MicroScheme ele salva e faz Update da tabela.
No caso de atualizações ai vem à parte mais Chata.
No caso vou apenas excluir o item da tabela, o Caixa inteiro com todos seus lançamentos.
E por Período

Página 2 de 2 [20 registro(s)]
Tópico encerrado , respostas não são mais permitidas