Não é raro necessitarmos de tabelas temporárias para fazermos testes, mas como criá-las?
SELECT * INTO tempTable FROM myTable WHERE myTable.id_MyTable IS NULL
INSERT INTO myTable SELECT * FROM tempTable
DROP temptable
SELECT "X" AS MyId, 1 AS F1, 1 AS f2 INTO MyTempTable
Para simular os demais testes abaixo, certifique-se de abrir o Northwind, nosso banco de dados de exemplo.
Este exemplo cria uma nova tabela chamada 'ThisTable' com 2 campos texto.Sub CreateTableX1()Dim dbs As Database' Modifique este linha para incluir o path do Northwind no seu computador.Set dbs = OpenDatabase("Northwind.mdb")
' Cria uma tabela com 2 campos texto.dbs.Execute "CREATE TABLE ThisTable " _& "(FirstName CHAR, LastName CHAR);"
dbs.CloseEnd Sub
O exemplo abaixo cria uma nova tabela chamada 'MyTable' com 2 campos texto, um campo Date/Time, e um único índice para os três campos.Sub CreateTableX2()Dim dbs As Database
' Modifique este linha para incluir o path do Northwind no seu computador.Set dbs = OpenDatabase("Northwind.mdb")' Cria uma tabela com três campos e u múnico índice para os três.dbs.Execute "CREATE TABLE MyTable " _& "(FirstName CHAR, LastName CHAR, " _& "DateOfBirth DATETIME, " _& "CONSTRAINT MyTableConstraint UNIQUE " _& "(FirstName, LastName, DateOfBirth));"dbs.CloseEnd Sub
O exemplo abaixo cria uma nova tabela chamada 'MyTable' com 2 campos texto e um campo Integer. O campo 'SSN' contém a chave primária (primary key).
Sub CreateTableX3()Dim dbs As Database' Modifique este linha para incluir o path do Northwind no seu computador.Set dbs = OpenDatabase("Northwind.mdb")' Cria uam tabela com três campo e uma chave primária (primary key).dbs.Execute "CREATE TABLE NewTable " _& "(FirstName CHAR, LastName CHAR, " _& "SSN INTEGER CONSTRAINT MyFieldConstraint " _& "PRIMARY KEY);"dbs.CloseEnd Sub
Também poderíamos criar um função que copiasse uma tabela sem os seus registros.
Public Sub subCreateTableCopy(strTableName As String)
' Cria a cópia temporária de uma tabela com o prefixo 'temp'
Dim dbs As Database
Dim tdf As TableDef
Dim strTempTable As String
On Error GoTo Error_subCreateTableCopy
Set dbs = CurrentDb
Let strTempTable = "temp" & strTableName
' Checa se a tabela existe e deleta-a
For Each tdf In dbs.TableDefs
If tdf.Name = strTempTable Then
DoCmd.DeleteObject acTable, strTempTable
GoTo DeletedTable
End If
Next
' Cria a cópia da tabela antes de atualizá-la.
DeletedTable:
DoCmd.CopyObject , strTempTable, acTable, strTableName ' Create the copy
Exit_subCreateTableCopy:
Exit Sub
Error_subCreateTableCopy:
MsgBox "Erro " & Err.Number & " - " & Err.Description
Resume Exit_subCreateTableCopy
End Sub
Reference::
http://msdn.microsoft.com/en-us/library/bb177893(v=office.12).aspx
Nenhum comentário:
Postar um comentário