ACCESS X DECIMAL X CREATE TABLE
PessoALL,
Sem pressa...
Estava tentando fazer isto dentro do Access (criar do [Ô]Criar[Ô] / [Ô]Design de Consulta[Ô] / [Ô]SQL[Ô]):
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:
Parece que funciona com MONEY também ... mas poxa vida!
O que há de errado com o DECIMAL?!?
Alguém sabe?
[][ô]s,
Tunusat.
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.
Olá, vela isso: http://maximoaccess.maisforum.com/t19852-resolvidocriar-coluna-via-consulta
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:
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.
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