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] -----------------------------------------------------------------------
