O que fazer se você receber o erro “Memória insuficiente” ao adicionar um campo por meio do Access Design View

Compartilhe agora:

Quantas vezes você tentou adicionar um novo campo a uma tabela existente e recebeu a temida mensagem de erro “não há memória suficiente para concluir esta operação”? Se a resposta for nenhuma, então você teve sorte - até agora, mas as chances são de que você a terá em algum momento, então este artigo explicará como você pode adicionar um novo campo - mesmo quando o Access não acha que pode …

Mudanças de mesa – sem dores de cabeça

Mensagem de erro de memória insuficienteeu tenhoost contagem do número de vezes que tentei fazer uma alteração em uma tabela, seja adicionando um novo campo, alterando o tipo de um campo existente ou excluindo um campo de uma tabela na Table Design View, apenas para ser saudado por uma mensagem de erro informando que não há memória suficiente para concluir a tarefa.

Além de ser um sinal de que o banco de dados (ou tabela) pode estar ficando um pouco grande, o que deve ser tratado antes de eu tentar reparar arquivos mdb, também pode ser um sinal de que o Access simplesmente não pode fazer isso enquanto o Modo Design estiver ativo. Nesse caso, há apenas uma alternativa – faça a partir do código!

O código

O código que usaremos neste artigo será bem básico e você saberáost certamente deseja adicionar a ele para torná-lo um trecho de código mais poderoso, mas o exemplo a seguir fornecerá o esqueleto do código necessário para adicionar um novo campo a uma tabela existente - uma explicação do código seguirá:

Sub AddFieldToTable(ByVal tableName As String, fieldName As String, fieldType As Integer) Dim objDB As Database Dim objTableDef As TableDef Dim objField As Field Set objDB = CurrentDb Set objTableDef = objDB.TableDefs(tableName) 'adicione o novo campo Com objTableDef Set objField = .CreateField(fieldName, fieldType) .Fields.Append objField 'Você também pode definir outras propriedades para o campo (como valores nulos permitidos etc) aqui If fieldType = dbText Then .Fields(fieldName).AllowZeroLength = False End If End With Set objField = Nothing Set objTableDef = Nothing Set objDB = Nothing End Sub

Explicando o código

Portanto, a primeira coisa a observar é que a quantidade mínima de informações necessárias para adicionar um novo campo a uma tabela existente é: O nome da tabela, o nome do campo e o tipo do campo. Tudo o que estamos pedindo como parâmetro para a sub-rotina. É claro que existem muitas outras configurações que você pode precisar adicionar (como tamanho do campo, etc.), mas, por enquanto, o código acima funcionará "como está" em seu banco de dados, então vamos explicar o básico de como ele está fazendo isso.

Em primeiro lugar, o código obtém uma referência ao banco de dados atual (objDB) e a definição da tabela existente que queremos alterar (objTableDef).

Tipo de campo de criaçãoUma vez que tenhamos a definição da tabela, basta chamar o método “CreateField” com o nome e tipo fornecidos para o campo. Você pode encontrar uma lista dos tipos de campo no arquivo de ajuda do Access no tópico “Field.Type” ou na tela de ajuda do método “CreateField”, mas para sua facilidade de referência, também os listei abaixo:

dbBigInt, dbBinary, dbBoolean, dbByte, dbChar, dbCurrency, dbDate, dbDecimal, dbDouble, dbFloat, dbGUID, dbInteger, dbLong, dbLongBinary, dbMemo, dbNumeric, dbSingle, dbText, dbTime, dbTimeStamp, dbVarBinary

Você pode definir propriedades adicionais (com uma exceção) após a chamada “CreateField” – definimos o campo para permitir entradas de comprimento zero no código acima.

A exceção a isso é se você quiser definir o tamanho do campo – isso deve ser feito quando você criar inicialmente o campo, então se você quiser alterar o código para que também possa definir o tamanho do campo, você deve alterar a chamada CreateField para o seguinte “.CreateField(fieldName, fieldType, fieldSize)”.

Introdução do autor:

Mitchell Pond é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar erro de SQL e produtos de software de recuperação do Excel. Para mais informações visite www.datanumen.com

Compartilhe agora:

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *