Forum Pplware

Versão Completa: Pedido de ajuda sobre access
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Bom dia
Será que alguém me pode ajudar? (Access...)
Tenho uma Tabela com os campos: Entidade, Bem1, Bem2, Bem3, ...
O campo bem na tabela anterior é numérico e regista a quantidade, isto é, a entidade "A" tem 10 unidades do "Bem1", etc.
Pretendo criar (converter) uma nova tabela derivada da anterior na vertical e só com três 3 campos: Entidade, Bem (Bem1, Bem2, Bem2, ...), quantidade (existente no bem).
Bloqueei quando na linha de código necessitei de identificar o conteúdo da variável como campo da tabela, isto é:
Criei uma tabela (TB_Ant) com base na primeira em que alem dos campos existentes acrescentei o campo Artigo (Entidade, Bem1, Bem2, Bem3, …, Artigo)
O campo Artigo está preenchido com os títulos da tabela “bens” (Bem1, Bem2, Bem3, …) e os campos “Bem1, Bem2, Bem3, …, tem as quantidades registadas
Através de um ciclo preencho a nova tabela (Tab_Nova: Entidade, Artigo, Quantidade)

Assim:

Tab_Nova!Entidade = Tab_Ant!Entidade
Tab_Nova!Artigo=Tab_Ant!Artigo

wVar = “Tab_Ant!” + Tab_Ant!Artigo

Tab_Nova!Quantidade = wVar


O meu problema é que wVar não indica a quantidade que está registada no campo Bem1, Bem2, etc, e sim o texto carregado na variável (como texto -> Tab_Ant!Bem1, Tab_Ant!Bem2, etc.)

Obrigado.
Paulo
portanto queres fazer o somatorio dos campos bem1, bem2, bem3 etc...? ... da tab_ant?
Olá,

Não. O que pretendia era converter uma tabela da horizontal para a vertical.

Já consegui e coloco aqui a programação que utilizei para no caso de alguem precisar poder utilizar.

BD_EntidadeQuantidadesArtigos (campos:Entidade, Caneta, Lapis, ..., Artigo)

Entidade - Caneta - Lapis - ... -Artigo
Escritorio 10 5 Caneta
Escritorio 10 5 Lapis
Economato 5 8 Caneta
Economato 5 8 Lapis

BD_Valores (Campos: Entidade, Artigo, Quantidade)

Entidade - Artigo - Quantidade
Escritorio Caneta 10
Escritorio Lapis 5
Economato Caneta 5
Economato Lapis 8


Private Sub Converter_Click()
On Error GoTo Err_Converter_Click
Dim MyBD As Database
Dim BD_Ler As Recordset
Dim BD_Esc As Recordset
Dim BD_Ler_Fd As Field
Dim wvar As String

Set MyBD = CurrentDb()
Set BD_Ler = MyBD.OpenRecordset("BD_EntidadeQuantidadesArtigos", DB_OPEN_TABLE)
Set BD_Esc = MyBD.OpenRecordset("BD_Valores", DB_OPEN_TABLE)

BD_Ler.MoveFirst
Do While Not BD_Ler.EOF

BD_Esc.AddNew
BD_Esc!Entidade.Value = BD_Ler!Entidade
BD_Esc!Artigo.Value = BD_Ler!Artigo

wvar = BD_Ler!Artigo

BD_Esc!Quantidade.Value = BD_Ler.Fields(wvar)

BD_Esc.Update

BD_Ler.MoveNext

Loop

BD_Ler.Close
BD_Esc.Close
Exit_Converter_Click:
Exit Sub
Err_Converter_Click:
MsgBox Err.Description
Resume Exit_Converter_Click
End Sub

Obrigado
Paulo
obrigadão pelo código, pode vir a ser util. Wink
URL's de Referência