CRIAR CAMPOS EM TABELA EM TEMPO DE EXECUCAO

PROVIDER 17/01/2010 01:38:53
#332153
Boa noite.

Estou desenvolvendo um formulário, onde o usuário estará apto a criar campos de acordo com a sua necessidade, porém ainda não consegui chegar aos finalmente.

Tenho um CADASTRO DE PRODUTO, onde para o segmento de meu cliente, há várias particularidades, que se forem criar as tabelas com campo fixo, dará + ou – 100 campos então pensaram na seguinte estrutura:

ID (Automático) DEFAULT
Descrição DEFAULT
Grupo (Chegou no ponto da dúvida)

Esse Grupo será responsável por determinar a classe do produto dentro do sistema.
EXEMPLO:

GRUPO:- INVERSOR DE FREQUENCIA (Os inversores tem como particularidade as informações: Potência, Tensão, Corrente)

No cadastro do produto seria mais ou menos assim:

ID = 1
Grupo = Inversor de Freqüência
>Campo criado = POTENCIA
>Campo criado = TENSAO
>Campo criado = CORRENTE

(*) O conteúdo do campo DESCRICAO seria formado com base nos campos acima criados pelo usuário, ficando assim:

Descrição = Inversor de Freqüência, Modelo A, Potencia Y, Tensão Z, Corrente X...

Outro exemplo:

GRUPO:- IHM (As IHMs tem como características principais Comunicação, Tipo, Tamanho, Rede, Tensão )

No cadastro do produto seria mais ou menos assim:

ID = 2
Grupo = IHM
>Campo criado = COMUNICACAO
>Campo criado = TIPO
>Campo criado = TAMANHO
>Campo criado = REDE
>Campo criado = TENSAO

(*) O conteúdo do campo DESCRICAO seria formado com base nos campos acima criados pelo usuário, ficando assim:

Descrição = Interface Homem Máquina, Comunicação XXXX, Tipo YYYY, Tamanho ZZZZ, Rede XXX, Tensão EEEEE, Marca Zé...

Quando fosse cadastrar o produto, por exemplo, e fosse escolhido o grupo X aparecesse somente os campos (criados) desse grupo. No caso de IHM apareceria somente Comunicação, Tipo, Tamanho, Rede, Tensão como TEXTBOX para preenchimento.

Quando fosse efetuar uma pesquisa por exemplo, o usuário selecionaria o GRUPO e apareceria os campos como opção de filtro...

Alguém poderia me dar uma ajuda?

Estou utilizando VISUAL BASIC 6, Banco de Dados ACCESS

Agradeço a atenção.

Marcelo S Zapia
mzapia@gmail.com
TECLA 17/01/2010 10:17:56
#332155
Existe algum LIMITE no número de CAMPOS que devem ser criados?
PROVIDER 17/01/2010 14:07:33
#332172
Tecla, boa tarde.

Na verdade não existe limite de campos, é exatamente por isso que estou fazendo com que o usuário crie os campos que facilitarão o seu processo.

Referente a criação de tabelas, acho que fica interessante, porém, temo pela lentidão em pesquisas, e os forms viriam já criados os texts de acordo com os campos criados na tabela (do grupo)...


Atenciosamente,
Marcelo S Zapia
mzapia@gmail.com
PROVIDER 27/01/2010 11:13:17
#332937
Alguém poderia me ajudar????

Atenciosamente,
Marcelo S Zapia
mzapia@gmail.com
MARCOSLING 27/01/2010 11:26:21
#332938
Acho que isso precisa ser re-pensado...

é necessário tudo isso de campos (vc contou +/- 100)?
Se a criação dos campos for livre, como vc vai validar as informações?
E como vc vai por tudo isso de campo num form?
Tem que levar em conta o limite do access...
MARCELO.TREZE 27/01/2010 13:02:11
#332950
Não vejo muita dificuldade, mas vamos ver se posso te ajudar.

crie tres tabelas

1 - cadastro [ô]esta é a tabela principal, onde vc não precisará ficar criando campos apenas indicando como sub grupos

id - autonum
grupo - texto
TipoCampo - Texto
Descrição - Texto

2 - grupos [ô] aqui você cria os grupos separadamente

id - autonum
descricao - texto

3 - TipoDeCampos [ô] aqui você vai cadastrar um tipo de campo para cada grupo

id - autonum
grupo - texto
nome - texto


bom vamos a explicação

lógico vc vai criar um form para cadastrar os grupos e campos

depois na sua tela de cadastro de produtos basta você colocar dois COMBOS um preenchido com os dados da tabela GRUPOS e ao selecionar um GRUPO você preenche o combo com os dados da tabela TipoDeCampos e pronto agora use este dados para salvar na tabela CADASTRO

ex;


você slecionou o grupo IHM no combogrupo e preencheu o combocampos com os seguintes dados COMUNICACAO,TIPO,TAMANHO, REDE,TENSAO

ai existe um textbox para colocar o nome do produto ex: Interface Homem Máquina

então ficaria salvo na tabela Cadastro o s

seguinte

id - grupo - tipocampo - Descricao
01 - IHM - Comunicaco - Interface Homem Máquina
02 - IHM - tipo - xxx
03 - IHM - Tensão - hhhh


e assim por diante

depois basta vc fazer um slect nesta tabela separando por grupo e tipodecampo.


não a nescessidade de se criar varios campos na tabelas

veja se te ajuda




Tópico encerrado , respostas não são mais permitidas