Boa tarde, pessoal!
Estava com um problema bem bizarro no Access, consegui resolver, mas não sei o que causou. Gostaria de colocá-lo em questão para descobrir o que aconteceu.
Tenho uma tabela, sem nada especial, que contém um campo Texto chamado tabela com as seguintes propriedades:
Tamanho: 50
Requerido: Não
Permitir comprimento zero: Sim
Indexado: Sim (Duplicação autorizada)
Compactação Unicode: Sim
Modo IME: Sem Controle
Modo de Frase IME: Nenhuma
As seguintes consultas dão o erro:
Não há registro atual. (Erro 3021)
Este erro ocorre após a aplicação sem êxito de um dos métodos Find ou do método Seek, quando o Recordset base não contiver registros ou o registro tiver sido excluído. Mova até um outro registro ou selecione um e tente a operação novamente. Se o Recordset estiver vazio, você não poderá posicionar em um registro atual. Verifique as propriedades BOF e EOF.
INSERT INTO Log (data, id_usuario, tipo, tabela, id_registro) values ("3/3/2008 14:10:20", 0, "Inclusão", "rel_orgao_periodicA", "id: 251 - pessoa: 130 - Periódica: 344");
INSERT INTO Log (data, id_usuario, tipo, tabela, id_registro) values ("3/3/2008 14:00:51", 0, "Inclusão", "rel_responsavel_nao_periodicA", "id: 506 - pessoa: 267 - Não Periódica: 426");
Porém as seguintes consultas não dão erro. Reparem que tirei apenas uma letra:
INSERT INTO Log (data, id_usuario, tipo, tabela, id_registro) values ("3/3/2008 14:10:20", 0, "Inclusão", "rel_orgao_periodic", "id: 251 - pessoa: 130 - Periódica: 344");
INSERT INTO Log (data, id_usuario, tipo, tabela, id_registro) values ("3/3/2008 14:00:51", 0, "Inclusão", "rel_responsavel_nao_periodic", "id: 506 - pessoa: 267 - Não Periódica: 426");
O que eu fiz... mudei a propriedade Indexado para Não. Aí parou de dar erro em qualquer consulta. Porém, eu queria deixar a indexação neste campo. Então compactei e reparei o banco de dados e voltei a opção de indexação para Sim (Duplicação autorizada). Não dá mais erro...
Já aconteceu com alguém?
Alguém sabe como evitar coisas do tipo?
Abraços!