O MS Access 2003 contém um console SQL de uso geral

4

Eu sei que você pode abrir um console SQL no Access ao criar uma consulta ou uma exibição, mas existe um console 'para todos os propósitos' que permita executar declarações como:

CREATE TABLE Foo
(
Foo_Id int NOT NULL,
Name varchar(255) NOT NULL,
CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name)
)
    
por DaveParillo 13.11.2009 / 19:35

4 respostas

7

Eu não sei o que você quer dizer com "console para todos os fins", mas talvez dentro do Access seja a Janela Imediata que atenderá às suas necessidades. Se você pressionar Ctrl-G no teclado da janela principal do Access, você será direcionado para a janela Immediate no VBE e poderá digitar:

  CurrentDB.Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

É uma interface de linha única, portanto, não há formatação SQL, mas ela executará o SQL.

O problema com o uso do CurrentDB como seu objeto de execução é que ele retorna um novo objeto de banco de dados toda vez que você o chama (para garantir que todas as suas coleções estejam atualizadas). Uma alternativa seria:

  DBEngine(0)(0).Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

Como o DBEngine (0) (0) sempre retorna o mesmo objeto, você pode verificar coisas como:

  DBEngine(0)(0).RecordsAffected

O "problema" com isso é que, se você estiver alterando as coleções do banco de dados, precisará se lembrar de atualizá-las antes de usá-las. Por exemplo, se você adicionar ou excluir uma tabela, deverá atualizar a coleção TableDefs para a coleção para estar atualizada:

  DBEngine(0)(0).TableDefs.Refresh

Outra alternativa seria usar um objeto de banco de dados em cache, como eu faço em todos os meus aplicativos, mas isso não evita o problema de atualização de coleções, mas apenas facilita a digitação (acho DBEngine digitando (0) (0 ) ser bastante propenso a erros, e achar minha função dbLocal muito mais fácil de usar).

    
por 13.11.2009 / 20:48
3

Abra a Visualização de design no objeto Banco de dados de consultas. Feche o fórum Show Table e, em seguida, clique com o botão direito na área vazia na parte superior da janela, abaixo das barras de ferramentas. Selecione SQL View. Isso lhe dará um ponto onde você pode executar consultas SQL. Use o "Run!" da barra de ferramentas.

Essa visualização é projetada para você criar e salvar consultas, mas não é necessário.

    
por 04.04.2012 / 23:50
1

Eu não acredito que o Access foi realmente pensado como sendo usado para uso geral do SQL, como criar tabelas e quais não. Você não pode usar "procedimentos armazenados" como faria em um servidor SQL comum. Acho que você ficará frustrado se começar a usar o Access sem usar o Visual Designer.

Boa sorte!

    
por 13.11.2009 / 22:25
0

Usar um ADP para se conectar ao SQL Server pode fornecer o que você deseja. No entanto, não sei até que ponto o Access 2003 permite que você crie modos de exibição e procedimentos armazenados no SQL Server 2005 ou 2008 como eles foram lançados após A2003.

    
por 28.11.2009 / 01:03