COMO TROCAR O NOME DO CAMPO

USUARIO.EXCLUIDOS 14/04/2007 01:15:59
#211862
eu nunca precisei disso, a coisa é tão inédita pra mim que não soube nem colocar no titulo do tópico.

tenho uma tabela com os seguintes campos numerados de 1 a 12

qtde1
descricao1
valor1
unidade1

qtde2
descricao2
valor2
unidade2

preencho esta tabela com dados de um grid

For i= 1 To Me.DBgrid.Rows - 1
T1.addNew
T1!Qde1= Me.DBgrid.TextMatrix(i,0)
T1!Descricao1= Me.DBgrid.TextMatrix(i,1)
T1!Valor1= Me.DBgrid.TextMatrix(i,2)
T1!Unidade1= Me.DBgrid.TextMatrix(i,3)
T1.Update
Next

tem como na segunda passada do for preencher o campo com final 2
na terceira o campo com final3 e por ai vai até 12

Qtde2
Descricao2
Valor2
Unidade2

Já consegui

For i= 1 To Me.DBgrid.Rows - 1
T1.addNew
T1("Qde" & i)= Me.DBgrid.TextMatrix(i,0)
T1(Descricao" & i)= Me.DBgrid.TextMatrix(i,1)
T1("Valor" & i)= Me.DBgrid.TextMatrix(i,2)
T1("Unidade" & i)= Me.DBgrid.TextMatrix(i,3)
T1.Update
Next




USUARIO.EXCLUIDOS 14/04/2007 01:20:39
#211864
uai cara, usando o for... nao sei se vai dar certo mas tenta algo assim


For i= 1 To Me.DBgrid.Rows - 1
T1.addNew
T1!Qde & (i)= Me.DBgrid.TextMatrix(i,0)
T1!Descricao & (i)= Me.DBgrid.TextMatrix(i,1)
T1!Valor& (i)= Me.DBgrid.TextMatrix(i,2)
T1!Unidade & (i)= Me.DBgrid.TextMatrix(i,3)
T1.Update
Next


cara, nao testei... e nao uso access tb! se nao der posta ai que a gente tenta resolve heiuheuihe

abraços
CLERISTONLUIZ 14/04/2007 01:21:37
#211865
Verifica isso:
Dim Qde(12) as integer
Dim Descricao(12) as string
Dim Valor(12) as double
Dim Unidade(12) as integer
For y = 1 to 12
For i= 1 To Me.DBgrid.Rows - 1
T1.addNew
T1!Qde(y) = Me.DBgrid.TextMatrix(i,0)
T1!Descricao(y)= Me.DBgrid.TextMatrix(i,1)
T1!Valor(y)= Me.DBgrid.TextMatrix(i,2)
T1!Unidade(y)= Me.DBgrid.TextMatrix(i,3)
T1.Update
Next
Next
USUARIO.EXCLUIDOS 14/04/2007 01:31:50
#211867
Resposta escolhida
afff - primeiro - acerta seu banco - isso eh nojento...
se isso nao for um data warehouse - ao inves de 12 grupos de campos com o mesmo nome, cria um unico com uma chave dupla - onde vc tem a sua chave (o banco tem chave, certo?) e um "indice" (putz - nao to nem acreditando que to sugerindo isso - cara - normaliza esse banco)
isso dito...

partindo do principio que T1 seja o recordset...

dim i as integer
dim j as integer

For y = 1 to 12
For i= 1 To Me.DBgrid.Rows - 1
T1.addNew
T1("Qde" & j) = Me.DBgrid.TextMatrix(i,0)
T1("Descricao" & j)= Me.DBgrid.TextMatrix(i,1)
T1("Valor" & j)= Me.DBgrid.TextMatrix(i,2)
T1("Unidade" & j)= Me.DBgrid.TextMatrix(i,3)
T1.Update
Next
Next

Mas como disse antes - eu sou fa de SQL - mas isso deve resolver
USUARIO.EXCLUIDOS 14/04/2007 01:42:57
#211869
é bruno resolvi antes da sua ideia, mas valeu , vou te pontuar pela agilidade de raciocionio.

Outra coisa os campo tem que ser assim pois são para emissão de notas fiscais, e exibidas no crysral report, é a quantidade de itens por nota, de outro jeito não tem como fazer a nota fiscal, porque se não uma nota sai de um tamanho, outra de outro tamanho, estes campos são da seção detalhe do relatóro.

quebrei a cabeça dois dias tentando fazer com apenas cinco campos, mas não consegui fazer no crystal, a solução foi criar a quantidade de campo igual a quantidade de itens permitido por nota fiscal.


USUARIO.EXCLUIDOS 14/04/2007 09:35:44
#211873
bem - faz algum tempo que nao uso o crystal, mas ate onde me lembro vc pode criar um sub relatorio ou subgrupo fazendo ele rodar todos os registros e colocar um abaixo do outro - seja 1 ou 12...

mas me lembro q o crystal era um saco...
Tópico encerrado , respostas não são mais permitidas