bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Criar Chave Primária, Valor Padrão e índice pelo ALTER TABLE
Criar Chave Primária, Valor Padrão e índice pelo ALTER TABLE

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

É 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!


 

 


1 comentário(s)

Arilson   02/02/2024 02:02:21

maravilha mestre...


Envie seu comentário: