CRIAR ESTRUTURA EM BANCO DE DADOS EM TEMPO DE EXEC

ELMO01 04/01/2010 09:54:30
#330981
Bom dia pessoal,

Este é mais um novo ano que se inicia. E com ele vem as dúvidas de um programador inesperiente em VB, estou fazendo um programa com vários bancos de dados do Acess. Agora dentro de um deles tenho que copiar ou criar uma nova estrutura dentro deste banco de dados existente com um novo nome. Como faço isto??
Tenho a seguinte estrutura já pronta:

Banco de dados Principal -> AQ_AMB01.MDB

Criar Neste banco outro arquivo com o sequinte nome: AQ_MESANO -> ex: AQ_012010

Estrutura deste do banco de dados
CODMED_AMB - Caracter - 10 Posições -> Código do Médico
CONREA1_AMB - Caracter - 03 Posições -> Consultas Realizadas 1
CONREA2_AMB - Caracter - 03 Posições -> Consultas Realizadas 2
CONREA3_AMB - Caracter - 03 Posições -> Consultas Realizadas 3
CONREA4_AMB - Caracter - 03 Posições -> Consultas Realizadas 4
TGATEND_AMB - Caracter - 03 Posições -> Total Geral de Atendimento
PRATEND_AMB - Caracter - 03 Posições -> Percentual de Atendimento
JSATFER_AMB - Caracter - 03 Posições -> Justificativa de Não Atendimento - Férias
JSATOUT_AMB - Caracter - 03 Posições -> Justificativa de Não Atendimento - Outras Justificativas
JSATTOT_AMB - Caracter - 03 Posições -> Justificativa de Não Atendimento - Total
ATNREA1_AMB - Caracter - 03 Posições -> Atendimento Não Realizado - Faltas ou Desmarcados - 1
ATNREA2_AMB - Caracter - 03 Posições -> Atendimento Não Realizado - Faltas ou Desmarcados - 2
TOATNRE_AMB - Caracter - 03 Posições -> Total do Atendimento Não Realizado
CONMARC_AMB - Caracter - 03 Posições -> Consultas não marcadas
COEXCED_AMB - Caracter - 03 Posições -> Consultas Excedentes
ATMOBS1_AMB - Memorando -> Observações

Será que tem algum jeito de fazer isto??

Obrigado,
NETMANIA 04/01/2010 09:57:47
#330982
Resposta escolhida
Elmo,

O que você poderia fazer neste caso (idéia) é criar um arquivo Access modelo com esta estrutura e realizar uma cópia dele toda vez que você precisar criar um banco de dados. Se você tivesse trabalhando com SGDB (como MySQL, SQL Server, Oracle, etc), você poderia colocar dentro do código o comando para criar a tabela, mas em Access, acredito que só seria possível fazendo a cópia fisica de um arquivo já existente.
ELMO01 04/01/2010 10:09:40
#330983
NETMANIA - Obrigado por ter respondido.

Achei no macoratti como fazer um novo banco de dados, mais não é isto que quero, quero que dentro do banco de dados existente crie um novo com a mesma estrutura que já tenho, será que isto não é possível??
TECLA 04/01/2010 10:11:50
#330985
Se eu entendi, você quer criar um MDB dentro um outro MDB... é isso???
ELMO01 04/01/2010 10:25:54
#330988
Tecla - Agradeço tb a sua atenção - como sabemos, dentro do arquivo MDB voce pode criar vários outros banquinhos de dados, bem o que quero é criar via código este banco de dados.

Agora você está se perguntando para que vai servir isto?

Bem como vc já pode perceber, este é um banco de dados de médicos, nele vai estar todas as consultas marcadas, realizadas e não realizadas, retornos etc. isto mensalmente. Para que não tenha que fazer um banco de dados com uma estrutura enorme, imaginei fazer desta forma, ou seja, criar dentro deste banco de dados outros banquinhos menores que eu possa acessá-lo quando me for conveniente atravéz de um submenu, assim, vou poder fazer um relatório de estatística mensal e outro anual para o meu cliente.

Agora pergunto, isto é possível??
TECLA 04/01/2010 10:32:03
#330990
Citação:

Agora pergunto, isto é possível??



Pode até ser, mas não consigo mensurar o TAMANHO do problema FUTURO que irá encontrar, já que ESTRUTURALMENTE falando o ACCESS costuma apresentar problemas trabalhando de forma TRADICIONAL.

Se me permite, sugiro que trabalhe com um ÚNICO banco do tipo SGBD (normalizado) já que terá um VOLUME razoável de informação.
NETMANIA 04/01/2010 10:34:59
#330991
Achei um exemplo, não sei se funciona (por que eu só tenho o Access 2007)

[ô]String de conexão com banco de dados
sCnx = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TESTE.mdb;Persist Security Info=False;Jet OLEDB:Database Password=senha[Ô]

[ô]Cria instância do objeto de conexão
Set cnx = New ADODB.Connection

[ô]Abre conexão com banco de dados
cnx.Open sCnx

[ô]Comando para criar a tabela
sComando = [Ô]CREATE TABLE nova_tabela_teste (empregado int, nome char(50))[Ô]

[ô]Executa comando
cnx.Execute sComando
ELMO01 04/01/2010 12:08:14
#330999
NETMANIA - vou testar o seu exemplo, vamos ver se vai dar certo.

Tecla - Como sou iniciante em VB e não estou familiarizado com os tipos de bancos de dados ao qual o VB pode utilizar, pois programava em no bom e velho CLIPPER, gostaria de saber que tipo de banco de dados é este ( SGBD )
TECLA 04/01/2010 14:03:32
#331010
Citação:

Tecla - Agradeço tb a sua atenção - como sabemos, dentro do arquivo MDB voce pode criar vários outros banquinhos de dados, bem o que quero é criar via código este banco de dados.



Acredito que esteja se referindo às TABELAS.
Citação:


Tecla - Como sou iniciante em VB e não estou familiarizado com os tipos de bancos de dados ao qual o VB pode utilizar, pois programava em no bom e velho CLIPPER, gostaria de saber que tipo de banco de dados é este ( SGBD )


Sistema Gerenciador de Banco de Dados
ELMO01 04/01/2010 14:50:48
#331023
Tecla - Agradeço pela dica do SGBD, como já postei aqui, sou um tanto inexperiente quando a banco de dados for windows mais com calma e com a ajuda de pessoas com vc e paginas explicativas como vc me enviou vou aprendendo devagar. Agradeço mais uma vez.
TECLA 04/01/2010 14:53:18
#331024
Tranquilo.
E aí, conseguiu criar as TABELAS via linha de código?
Tópico encerrado , respostas não são mais permitidas