Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hao

É possivel criar tabela em bd access ...

Recommended Posts

Fala galera,minha duvida eh essa, tenho um banco de dados no servidor, e preciso adicionar uma tabela e campos nesse bd, mas queria fazer isso via codigo asp, tem como?? pesquisei no google e em varios lugares e achei isso mas no SQL Server, mas para o Access nao achei.abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, veja se eu ajudo com esse código, que comigo não deu muito certo, mas você pode desenvolver

 

inserir.asp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>AccessAdmin - iMasters - por Vinícius Luiz</title><link href="estilos.css" rel="stylesheet" type="text/css" /></head><body><div id="quadro">	  <div id="conteudo">	<h5>Inserir tabelas no Banco de Dados</h5>	<p>Para inserir uma nova tabela, preencha o campo abaixo com o Nome da tabela desejado e logo após a quantidade de campos que conterá esta nova tabela:</p>	<form action="inserir2.asp" method="post" name="enviar">	<p>	Nome da tabela:<br />	<input name="tabela" type="text" />	</p>	<p>	Quantidade de campos:<br />	<input name="campos" type="text" size="3" maxlength="3"/>	</p>	<p>	<input type="submit" name="Submit" value="Criar tabela" />	</p>	</form>  </div></div></body></html>

inserir2.asp

<%'Criaremos uma SUB para a conexão para conectarmos com o banco de dados do AccessAdmin'Detalhe: Não é o banco que será administradosub abrir_conexao		localbd = "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("bancodedados/configaccessadmin.mdb")	set bd=Server.CreateObject("ADODB.Connection")	bd.open localbdend sub'SUB que fechará a conexãosub fechar_conexao	bd.close	Set bd = nothingend sub%><% Option Explicit %><!--#include file="_conexao.asp" --><!--#include file="_cookie.asp" --><%'Pegaremos o total de campos em uma variáveldim totaldecampos, nomedatabelaif request.form("campos")="" or request.form("tabela")="" then	response.write "<script>history.back(1);alert('Informe o nome da tabela e/ou a quantidade de campos.')</script>"	response.endend iftotaldecampos=request.form("campos")nomedatabela=request.form("tabela")%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>AccessAdmin - iMasters - por Vinícius Luiz</title><link href="estilos.css" rel="stylesheet" type="text/css" /></head><body><!--#include file="_topo.asp" --><div id="quadro">	  <div id="conteudo">	<h5>Inserir tabelas no Banco de Dados</h5>	<p>Agora que já escolheu o nome da tabela, preencha abaixo os campos que conterá na Tabela <b><%=nomedatabela%></b>:</p>	<form action="inserir3.asp" method="post" name="enviar">	<p>Nome da tabela: <input name="nomedatabela" type="text" value="<%=nomedatabela%>" /></p>	<% 	'Iremos repetir todos os campos	Dim i	for i=1 to totaldecampos 		if len(i)=1 then		i=0&i	else		i=i	end if	%>	<p>	<strong><%=i%> - </strong>Campo: <input name="campo<%=i%>" type="text" />  Tipo de dados: 	<select name="tipo<%=i%>">		<option value="BIT">Sim/Não</option>		<option value="BYTE">Número</option>		<option value="COUNTER" selected="selected">Autonumerado</option>		<option value="CURRENCY">Moeda</option>		<option value="DATETIME">Data/Hora</option>		<option value="SINGLE">Número - Simples</option>		<option value="DOUBLE">Número - Duplo</option>		<option value="SHORT">Número - Inteiro</option>		<option value="LONG">Número - Inteiro Longo</option>		<option value="LONGTEXT">Memorando</option>		<option value="LONGBINARY">Objeto OLE</option>		<option value="TEXT">Texto</option>	</select>	 Tamanho do campo: <input name="tamanho<%=i%>" type="text" size="4"/>  Chave Primária: 	<input name="chaveprimaria" type="radio" value="<%=i%>" id="chaveprimaria"/></p>	<% next %>	<input name="enviar" type="submit" value="Inserir campos na tabela <%=nomedatabela%>"/>	</p>	<input name="totaldecampos" type="hidden" id="totaldecampos" value="<%=totaldecampos%>" />		</form>  </div></div></body></html>

inserir3.asp

<%'Criaremos uma SUB para a conexão para conectarmos com o banco de dados do AccessAdmin'Detalhe: Não é o banco que será administradosub abrir_conexao		localbd = "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("bancodedados/configaccessadmin.mdb")	set bd=Server.CreateObject("ADODB.Connection")	bd.open localbdend sub'SUB que fechará a conexãosub fechar_conexao	bd.close	Set bd = nothingend sub%><% Option Explicit %><%DIM naoexiste, nomedatabela, verificartabelaif request.form("nomedatabela")="" then	response.write "<script>history.back(1);alert('Informe o nome da tabela e/ou a quantidade de campos.')</script>"	response.endend ifnomedatabela = request.form("nomedatabela")'Abrir conexãocall abrir_conexaocall abrir_conexao_banco'Primeiramente, temos que verificar se no banco já nao existe uma tabela com esse nomenaoexiste = false 'iremos verificar todas as tabelas até achar uma tabela com o mesmo nomefor each verificartabela in ADOXbanco.tables 	if lcase(verificartabela.name) = lcase(nomedatabela) then 		naoexiste = true 		exit for 	end if next set ADOXbanco = nothing 'Se achar, voltaremos e mostraremos uma mensagem avisandoif naoexiste then response.write "<script>history.back(1);alert('A tabela que está tentando criar já existe.')</script>" call fechar_conexao_bancocall fechar_conexaoresponse.endend ifdim totaldecampos, i, i2, i3, camposacriar, autonumerado, campovazio, totaldecaracterestotaldecampos=request.form("totaldecampos")camposacriar=""autonumerado=0'A variavel campo vazio irá impedir que o sistema crie um campo que nao tenha cido preenchido'Ou seja, irá ignorarcampovazio=true'Vamos fazer um for para verificar se existem campos com o mesmo nomefor i2=1 to totaldecampos	for i3=1 to totaldecampos		if request.form("campo"&i2)<>"" then			if i3<>i2 then				if request.form("campo"&i2)=request.form("campo"&i3) then					response.write "<script>history.back(1);alert('Não se pode criar vários campos com o mesmo nome.')</script>"					call fechar_conexao_banco					call fechar_conexao					response.end				end if			end if		end if	nextnextfor i=1 to totaldecampos	if len(i)=1 then		i=0&i	else		i=i	end if	'Verificar se o campo é AUTONUMERADO	if request.form("tipo"&i)="COUNTER" and request.form("campo"&i)<>"" then		if autonumerado=0 then			autonumerado=1		else			response.write "<script>history.back(1);alert('Não se pode criar 2 campos com AUTONUMERAÇÃO.')</script>"			call fechar_conexao_banco			call fechar_conexao			response.end		end if	end if		'Se não for digitado nenhuma valor no nome do campo, determinar campovazio = false	'Para que seja ignorado	if request.form("campo"&i)="" then		campovazio=false	end ifif campovazio then	if request.form("tamanho"&i)<>"" and request.form("tipo"&i)="TEXT" then		if request.form("tipo"&i)<>"COUNTER" then 						'Verificar se o valor é maior que 255			if cdbl(request.form("tamanho"&i))>255 or cdbl(request.form("tamanho"&i))<=0 then				totaldecaracteres=255				camposacriar=camposacriar & request.form("campo"&i) &" "& request.form("tipo"&i) &" ("&totaldecaracteres&")"			else				camposacriar=camposacriar & request.form("campo"&i) &" "& request.form("tipo"&i) &" ("&request.form("tamanho"&i)&")"			end if		else			camposacriar=camposacriar & request.form("campo"&i) &" "& request.form("tipo"&i) &""		end if	else		camposacriar=camposacriar & request.form("campo"&i) &" "& request.form("tipo"&i)  &""	end if		'Colocar chave primária	if int(request.form("chaveprimaria"))=int(i) then		camposacriar=camposacriar &" CONSTRAINT primarykey PRIMARY KEY"	end if		'Verificar se já pegou todos os campos	if int(i)<int(totaldecampos) then		camposacriar=camposacriar&", "	end ifend ifcampovazio=true	next'Uniremos tudo que foi criadocamposacriar="CREATE TABLE "&nomedatabela&" ("&camposacriar&");"'Aqui, iremos verificar se o último caracter dentro do parentese é vírgula'Pois pode acontecer de alguém deixar o último campo em branco'Daí o sistema irá adicionar uma vírgula e dará erro na SQLif trim(mid(strreverse(camposacriar),4,1))="," then	camposacriar=left(camposacriar,len(camposacriar)-4)&");"end if'Aqui faremos a mágica!'Abaixo a linha que criará a tabela.bd_banco.execute camposacriarcall fechar_conexao_bancocall fechar_conexao%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>AccessAdmin - iMasters - por Vinícius Luiz</title><link href="estilos.css" rel="stylesheet" type="text/css" /></head><body><!--#include file="_topo.asp" --><div id="quadro">	  <div id="conteudo">	<h5>Inserir tabelas no Banco de Dados</h5>	<p>A tabela <b><%=request.form("nomedatabela")%> </b>foi inserida com sucesso.</p>  </div></div></body></html>
ve se isso ajuda, pq ele talvez só insere, mas naum mostra as tabelas na pagina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só utilizar a SQL CREATE TABLE, e FIELDs, só tem que pesquisar quais códigos numéricos representam cada tipo de dadto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu WebMaster Eli James e Salgado!

 

consegui criar as tabelas e o banco normalmene, e vou pesquisar mais sobre os metodos!

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.