... Pague apenas R$47,00 uma única vez e tenha acesso por 1 ano aos vídeos e arquivos exemplos do site ...

Clique aqui e obtenha mais detalhes.


Criar Chave Primária, Valor Padrão e índice pelo ALTER TABLE

É utilizada a cláusula ADD CONSTRAINT no ALTER TABLE para definir um ou mais campos como Chave Primária.  A Chave Primária é definida com o uso da palavra chave PRIMARY KEY.  Observe no código, a parte em vermelho.

Public Sub fncCriarTabela()
Dim strSql$
Dim bd As dao.Database

Set bd = CurrentDb

strSql = "CREATE TABLE tblProdutos (" _ 
"idProduto AUTOINCREMENT," & _
"NomeProduto CHAR(50)," & _
"DataLançamento DATE," & _
"QuantidadeEstoque INTEGER," & _
"ValorUnitário CURRENCY," & _
"Observação MEMO," & _
"Descontinuado YESNO)"
'-------------------------------------
'Executa a consulta, criando a tabela
'-------------------------------------
bd.Execute strSql
'--------------------------------------------------------------------------
'Acrescentando a Chave Primária ao campo idProduto.  pkey é o nome do índice
'--------------------------------------------------------------------------
strSql = "ALTER TABLE tblProdutos ADD CONSTRAINT pkey PRIMARY KEY (idproduto)"
bd.Execute strSql
set bd = Nothing
End Sub

Para acrescentar Valor Padrão é possível utilizar o tableDefs do DAO.  Observe o código abaixo ande é acrescentado a data atual como Valor Padrão (DefaultValue) para o campo DataLançamento.

Public Sub fncCriarTabela()
Dim strSql$
Dim bd As dao.Database

Set bd = CurrentDb

strSql = "CREATE TABLE tblProdutos (" _ 
"idProduto AUTOINCREMENT," & _
"NomeProduto CHAR(50)," & _
"DataLançamento DATE," & _
"QuantidadeEstoque INTEGER," & _
"ValorUnitário CURRENCY," & _
"Observação MEMO," & _
"Descontinuado YESNO)"
'-------------------------------------
'Executa a consulta, criando a tabela
'-------------------------------------
bd.Execute strSql
'---------------------------------------------------
'Acrescentando Valor Padrão ao campo DataLançamento
'---------------------------------------------------
bd.TableDefs("tblProdutos").Fields("DataLançamento").DefaultValue = "=date()"
End Sub

			

O ADO tem o recurso de usar a cláusula SET DEFAULT pelo ALTER TABLE.  Observe atentamente o seguinte código:

Public Sub fncCriarTabela()
Dim strSql$
Dim cmd As New ADODB.Connection

Set cmd = CurrentProject.Connection

strSql = "CREATE TABLE tblProdutos (" _ 
"idProduto AUTOINCREMENT," & _
"NomeProduto CHAR(50)," & _
"DataLançamento DATE," & _
"QuantidadeEstoque INTEGER," & _
"ValorUnitário CURRENCY," & _
"Observação MEMO," & _
"Descontinuado YESNO)"
'-------------------------------------
'Executa a consulta, criando a tabela
'-------------------------------------
cmd.Execute strSql
'----------------------------
'Acrescentando Valor Padrão
'----------------------------
strSql="ALTER TABLE tblProdutos ALTER COLUMN dataLançamento SET DEFAULT date()"
cmd.Execute strSql
End Sub

			

Com o ADO é possível, também, inserir o Valor Padrão (DEFAULT) direto no CREATE TABLE.  Observe  a parte em vermelho do código:

Public Sub fncCriarTabela()
Dim strSql$
Dim cmd As New ADODB.Connection

Set cmd = CurrentProject.Connection

strSql = "CREATE TABLE tblProdutos (" _ 
"idProduto AUTOINCREMENT," & _
"NomeProduto CHAR(50)," & _
"DataLançamento DATE DEFAULT date()," & _
"QuantidadeEstoque INTEGER," & _
"ValorUnitário CURRENCY DEFAULT 0," & _
"Observação MEMO," & _
"Descontinuado YESNO)"
'-------------------------------------
'Executa a consulta, criando a tabela
'-------------------------------------
cmd.Execute strSql
End Sub

			

Para ter acesso as tabelas do back-end pelo front-end,  utiliza-se o PROVIDER do ADO. Observe a parte em vermelha do código:

Public Sub fncCriarTabela3()
Dim strSql$
Dim strCnx$
Dim cnx As New ADODB.Connection
'----------------------------------
'String de conexão com o back-end
'----------------------------------
strCnx = "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;" 
strCnx = strCnx & "Data Source=C:\MinhaPasta\back-end.accdb;"
strCnx = strCnx & "Jet OLEDB:Database Password='MinhaSenha'"
'--------------------------------
'Abre a conexão com o back-end
'--------------------------------
cnx.Open strCnx
'-------------------------------------
'Estrutura da nova tabela tblprodutos
'-------------------------------------
strSql = "CREATE TABLE tblProdutos (" _ 
"idProduto AUTOINCREMENT," & _
"NomeProduto CHAR(50)," & _
"DataLançamento DATE DEFAULT date()," & _
"QuantidadeEstoque INTEGER," & _
"ValorUnitário CURRENCY DEFAULT 0," & _
"Observação MEMO," & _
"Descontinuado YESNO)"
'-------------------------------------
'Executa a consulta, criando a tabela
'-------------------------------------
cnx.Execute strSql
End Sub

Criar índice acelera pesquisas e a classificação dos campos.  É fundamental que você defina quais campos deseja indexar para que haja ganho de desempenho do seu aplicativo.  Utilizamos o CREATE INDICE para criarmos os índices desejados.

currentdb.Execute "CREATE INDEX idxDataLançamento ON tblProdutos (dataLançamento)"

Observe na imagem abaixo o índice criado:

Usando Access - Create Index

A instrução CREATE INDEX pode ser usada com as seguintes opções:

PRIMARY Indica que o índice é a chave primária da tabela
DISALLOW NULL Impede a inserção de dados nulos no campo
IGNORE NULL Faz com que os dados nulos da tabela sejam ignorados no índice
UNIQUE Inseri no campo apenas valores exclusivos e não repetidos

 

Utilize a palavra chave WITH para declarar as opções. Exemplo:

currentdb.Execute "CREATE INDEX idxDataLançamento _ 
ON tblProdutos (datalançamento) WITH IGNORE NULL"

Para configurar com a opção UNIQUE:

currentdb.Execute "CREATE UNIQUE INDEX idxDataLançamento _ 
ON tblProdutos (datalançamento)"

Para excluir um Índice, utilize o DROP INDEX.

currentdb.Execute "DROP INDEX idxDataLançamento ON tblProdutos"

Bom estudo!


 

 


Não há comentário

Envie seu comentário: