COMO TROCAR O NOME DO CAMPO
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
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
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
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
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
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
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
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
é 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.
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.
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...
mas me lembro q o crystal era um saco...
Tópico encerrado , respostas não são mais permitidas