ACCESS X DECIMAL X CREATE TABLE

TUNUSAT 04/08/2014 16:15:33
#440169
PessoALL,

Sem pressa...

Estava tentando fazer isto dentro do Access (criar do [Ô]Criar[Ô] / [Ô]Design de Consulta[Ô] / [Ô]SQL[Ô]):
create table vendedor
(
cod_vend smallint not null,
nome_vend varchar(40) not null,
sal_fixo decimal(10,3) not null,
faixa_comis
char(01) not null,
primary key (cod_vend));


Mas teimava em dar o erro ao executar (!):
[Ô]Erro de sintaxe na definição de campo.[Ô]

Fui procurar na teia e achei:
======================================================

http://social.msdn.microsoft.com/forums/office/en-US/ea49dfc3-a970-47a6-bab3-bce6e911248c/two-questions-about-decimal-field

• Yes it is. In table design, Data Type = Number, Field Size = Decimal.
However, SQL creating such fields only works ANSI-92 SQL is in effect, and by default it isn[ô]t. You can change the SQL dialect in the Access options dialog ([Ô]SQL Server Compatible Syntax (ANSI 92)[Ô] . Or you can run the SQL statement via ADO, using a statement like this:

CurrentProject.Connection.Execute [Ô]ALTER TABLE MyTable ADD COLUMN MyField DECIMAL (10,3)[Ô]

======================================================

MAS Não consegui mudar para ANSI-92 SQL...

======================================================

Tentei substituir o [Ô]DECIMAL[Ô] pelo [Ô]DOUBLE[Ô], veja:
http://www.codeproject.com/Questions/634066/Create-MsAccess-accdb-table-datatype-Double-with-d

======================================================

Funcionou assim:
create table vendedor
(
cod_vend smallint not null,
nome_vend varchar(40) not null,
sal_fixo double not null,
faixa_comis
char(01) not null,
primary key (cod_vend));


Parece que funciona com MONEY também ... mas poxa vida!
O que há de errado com o DECIMAL?!?

Alguém sabe?

[][ô]s,
Tunusat.
MARCELODAVID 04/08/2014 23:56:00
#440193
Resposta escolhida
Olá, vela isso: http://maximoaccess.maisforum.com/t19852-resolvidocriar-coluna-via-consulta
TUNUSAT 05/08/2014 08:03:23
#440194
MARCELODAVID,

Segundo o moderador do [Ô]http://maximoaccess.maisforum.com/[Ô], disse que tem um [Ô]BUG[Ô]!
Então onde está o [Ô]SP - Service Pack[Ô] para este BUG?!?

==================================================
Mensagem Avelino Sampaio em Qua 30 Jul 2014, 11:56 pm

Olá!

O DAO tem um bug e não deixa criar o campo Decimal. Terá que usar o ADO implicitamente. Experimente:
CurrentProject.Connection.Execute [Ô]ALTER TABLE [tabela] ADD COLUMN [Campo_1] integer, [Campo_2] text, [Campo_3] decimal (11,7);[Ô]

Aguardamos
==================================================

[Ô]... terá que ativar o ADO na lista de referências do VBA. Abra a lista e então ative...[Ô]

Bom, resolvi assim então:

Fui até o VBA do Access e criei um módulo, dentro dele coloquei o código:

Option Compare Database

Sub teste()
CurrentProject.Connection.Execute [Ô]ALTER TABLE [vendedor] ADD [Campo_3] decimal (11,7);[Ô]
End Sub


Criou na boa depois que eu mandei executar.
Então preciso montar minhas [Ô]Create Table[Ô] sem as [Ô]DECIMAL[Ô] e depois adicioná-las por fora OU...

... Criar todas as tabelas de forma implícita (acho mais adequado).

Alguém tem alguma outra dica?

[][ô]s,
Tunusat.
Tópico encerrado , respostas não são mais permitidas