Obrigado pelo sua tentativa de ajuda.

Utilizo (ainda) o VB6 com a BD em Access97.  (pois creio que o VB6 não
trabalha com Access'es posteriores.) O que tenho feito quando preciso de
alterar um campo, é ir à partição que ainda tenho com o XP e com o Access
2003, (utilizo actualmente outra partição com o Windows7 e o Access2010), e
converter a BD para Access97, emendar os campos, tornar a converter para
Access2003 e pronto, fica sempre resolvido.
Mas para evitar voltar sempre ao XP, é que tentei fazer pelo SQL, mas não
consegui alterar.

-Consigo ADICIONAR com:
ALTER TABLE Entidades ADD COLUMN Profissao Char(40) DB.Execute SQL,
dbFailOnError -Consigo REMOVER com:
ALTER TABLE Entidades DROP COLUMN Profissao DB.Execute SQL, dbFailOnError
-Mas se fizer ALTER TABLE Entidades ALTER COLUMN Profissao Char (40)
DB.Execute SQL, dbFailOnError -continua a dar erro e não altera.
> Run-time error '3293'
> Sytaxe error in ALTER TABLE statment.

Sugere que exclua o campo e depois o volte a criar, prenchendo
posteriormente o mesmo.
Já tinha pensado nisso e até já o experimentei, pois com ADD e o DROP não me
dá erro, mas como tenho já muitos registos na BD, não creio que se torne
prático, pois terei 'apontar' os dados de cada um, e voltar a preenchê-los
novamente um a um.

Pelos vistos, parece que com esta versão do VB não conseguirei Alterar.
Bem, vou 'voltando ao XP' quando precisar de Alterar, aliás como tive de
fazer agora.
Cumprimentos
Manuel Dias - Parede



> -----Mensagem Original----- 

> Boas, ora bem!
> Eu sou um grande apaixonado na linguagem SQL, como diz Sr. Santos é um
> espectáculo!!

> Tenho andado a pensar o porquê de não funcionar, pelo que sei no VB2008
com
> o seguinte exemplo se consegue alterar, alias é assim que eu faço:

>   SQL = "ALTER TABLE "
>         SQL &= Tabela
>         SQL &= " ALTER COLUMN "
>         SQL &= Coluna & " " & Tipo


>         cnSQL.ConnectionString = Conexao
>         cnSQL.Open()
>         Dim cmSelect As New SqlCommand(SQL, cnSQL)
>         Dim Execute As SqlDataAdapter
>         Execute = cmSelect.ExecuteScalar
>         cnSQL.Close()

> Ex.: ALTER TABLE tabela ALTER COLUMN Coluna1 nvarchar(15)

> Mas também me lembro-me que há tempos em VB6 com Access 97, tive um
problema
> muito idêntico, e na altura tb não consegui resolver esse problema, mas na
> programação é assim qdo n se sabe, vai-se por outro caminho!
> Então, eliminei a tabela no próprio código e voltava a criar a mesma
tabela
> com as devidas alterações, penso q é a melhor solução.
> O que entendi nesse problema, provavelmente deve utilizar o Access
posterior
> ao 2007 (penso q o 2007 já utiliza o motor de busca SQL) e parece-me que o
> Access não suporte essa função de alterar coluna ou então tb pode ser
algum
> problema de direitos a base de dados.

> Cumprimentos! E boa sorte!
> Ricardo Freitas

> -----Mensagem original-----
> Mais uma vez os meus agradecimentos ao Ricardo, mas continuo a não
conseguir ALTERAR.

> Consigo ADICIONAR com:   ALTER TABLE Entidades ADD COLUMN Profissao Char
> (40)
> Consigo REMOVER com:     ALTER TABLE Entidades DROP COLUMN Profissao
> Mas se fizer,                        ALTER TABLE Entidades ALTER COLUMN
> Profissao Char (40),  continua a dar erro e não altera.
>> Run-time error '3293'
>> Sytaxe error in ALTER TABLE statment.

> Já consultei os Sites que indicou, e procedi como indicado no site do
'w3schools' para alterar, mas mesmo assim não vai.

> Cumprimentos
> Manuel Dias - Parede

> -----Mensagem Original-----
> A sintaxe é a seguinte "ALTER TABLE [Nome da Tabela] ALTER COLUMN
> [Nome da Coluna] [Tipo]

> Como por exemplo ALTER TABLE Entidades ALTEER COLUMN Proffisao
> nvarchar
(40)

> Nota eu uso o SQL Server.

> Tens nesses sites alguns exemplos:
> http://www.macoratti.net/
> http://www.w3schools.com/sql/default.asp

> São muitos bons!
> Boa sorte!
> Ricardo Freitas


> -----Mensagem original-----
> Obrigado pela sua resposta, mas parece não resultar.

> Eu tentei inicialmente com este comando:
> -----------------------------------
> SQL - ALTER TABLE Entidades ALTER COLUMN Profissao TEXT(40) DB.Execute
SQL, dbFailOnError
> -----------------------------------
> dava erro.

> Modifiquei o ALTER COLUMN para modify COLUMN
> -----------------------------------
> SQL - ALTER TABLE Entidades MODIFY COLUMN Profissao TEXT(40)
> DB.Execute
SQL, dbFailOnError
> -----------------------------------
> mas também me dá o seguinte erro:
> Run-time error '3293'
> Sytaxe error in ALTER TABLE statment.

> Pesquisei em SQL mas não encontro nada referente a 'scholl' nem a
> 'MODIFY
COLUMN'. Só 'ALTER COLUMN'
> Uso o 'Visual Basic' versão 6.

> Cumprimentos
> Manuel Dias - Parede




> -----Mensagem Original-----
> É facil. Basta fazer alter table modify collmun coluna tipo. Atençao
> pesquisa em  sql scholl para ver se está correcta a sintaxe da coluna.

> Enviado do meu HTC
> Ricardo Freitas

> ----- Mensagem Original -----
> Como posso dentro de um programa 'VisualBasic' alterar o tamanho de um
campo (por exemplo de 30 para 40 caracteres) ?
>
> Com o comando 'SQL - ALTER TABLE 'x' ADD COLUMN 'x'...' consigo CRIAR
> um
campo com 'n' caracteres, mas e se eu pretender alterar a
> dimensão de um campo já criado, poderei fazê-lo ?
> É que se fizer  'SQL - ALTER TABLE 'x' ALTER COLUMN 'x'...' dá erro.
>
> Cumprimentos
> Manuel Dias - Parede
> Manuel Dias


-- 
-----------------------------------------------------------------------
                     Revista  COMPUTADOR

   <<<   EM BANCA A REVISTA N. 146   >>>

              http://www.clubeinformatica.com
-----------------------------------------------------------------------

- Para responder a esta mensagem, basta um um clique sobre "Responder" (ou 
"Reply"). A sua resposta será enviada para "[email protected]" e 
depois reencaminhada ao autor e a todo o grupo.

- Para enviar a sua própria mensagem a solicitar ajuda, envie um email para:
[email protected]

- Para anular a inscrição neste grupo, envie um email para: 
[email protected]

- Para consultar o histórico de mensagens, visite este grupo em:
https://groups.google.com/group/ajuda-informatica/topics

- Para contactar o Moderador:
[email protected]

-----------------------------------------------------------------------

Responder a