ERRO 3265 ITEM NOT FOUND

SIRIOUS 02/05/2013 15:52:29
#422853
Estou precisando de ajuda para entender a ocorrência de um erro singular...
Num projeto de um aplicativo usado para cadastro e manutenção de acervo de filmes VHS/DVD, quando tento acessar o conteúdo de um (novo) campo tipo memo, allowzerosize que contém previamente algumas informações cadastradas em um form de alteração de dados, ao clicar no ícone que acessa esse campo, é gerado um erro 3265. Todavia, isso só acontece quando rodo o programa instalado na pasta c:\Arquivos de programas (x86). Se acesso o aplicativo pelo executável diretamente na pasta do projeto, o erro não ocorre... Ou mesmo rodando o projeto e executando pelo <F5>...
Uso o Package and Deployment Wizard, VB6, em ambiente 64bit (Windows 7).
(Todas as demais rotinas do programa funcionam perfeitamente: cadastros, consultas, exclusões, edições, impressão de relatórios, etc....).
Alguém poderia me indicar onde (e o quê procurar) para corrigir essa anomalia? (imagino que a falha aconteça durante a criação do pacote de instalação... Todavia, todos os outros projects que possuo são compilados e instalados sem qualquer problema no gênero)
MARCELO.TREZE 02/05/2013 16:07:26
#422854
qual é o banco de dados?

me parece que vc possui dois bancos de dados diferentes.

SIRIOUS 02/05/2013 23:27:44
#422868
Desculpe o esquecimento de algo tão básico.
O banco é Access versão 7.0 (utilizo o Visual Data Manager para criar os campos e respectivos vínculos)...
Já fiz diversas simulações com o mesmo banco, mas segue apresentando o mesmo resultado dúbio:
- Se acesso o arquivo executável a partir da pasta de Projects, a anomalia não ocorre.
- Se acesso o arquivo executável a partir da pasta de programas, aí o campo (novo) não é visto pelo programa.
(Isso tudo vem acontecendo desde que inseri um novo campo na tabela. Tive o cuidado de confirmar a exis-
tência do campo novo na tabela, antes de compilar e antes de criar o setup de instalação)...
Já mexi em diversos projetos diferentes, com banco de dados, mas não tinha ainda defrontado com esse tipo de problema...
MARCELO.TREZE 03/05/2013 12:39:33
#422892
pergunta como vc carrega o banco
assim

c:\pasta\project\banco.mdb

ou assim

app.Path & [Ô]\banco.mdb

OCELOT 03/05/2013 13:11:48
#422897
Resposta escolhida
Por acaso você adicionou este campo memo depois de já ter testado instalar uma outra versão desse programa nesse PC? Se sim o problema pode ser o VirtualStore

A partir do Windows Vista existe um sistema de virtualização de arquivos para programas antigos que gravam dados dentro da pasta arquivos de programas.

Não é recomendado gravar nenhum tipo de informação na pasta do programa se ele estiver dentro da pasta Arquivos de Programas pois por padrão um usuário mesmo que administrador não vai ter permissão de gravação nessa pasta se o UAC estiver ativado, só que para programas antigos funcionarem, o que inclui programas feitos com o VB6 por padrão, a microsoft fez com que qualquer tentativa de gravação desses programas antigos fosse redirecionada para outra pasta chamada VirtualStore que fica em [Ô]C:\Users\Nome do Usuário\AppData\Local\VirtualStore[Ô], lembrando de trocar o nome do usuário ali no caminho, ou simplesmente pode-se usar [Ô]%localappdata%\VirtualStore[Ô] para abrir a pasta.

Se olhar lá deve ter uma pasta Programa Files com uma ou mais pastas dentro dela, onde uma deve ser a do seu programa, e provavelmente ali vai estar o seu banco de dados, veja se este possui os campos corretos na tabela que está tentando acessar.

Só lembrando que o recomendado é nunca usar a pasta do programa para gravar dados, lá só se deve ter o programa e arquivos que nunca vão ser alterados, o recomendado é criar umas pasta dentro da %appdata% ou da %programdata%, onde a primeira é diferente para cada usuário do Windows e a segunda é a mesma para todos.
SIRIOUS 03/05/2013 18:01:44
#422917

Marcelo-Treze:
Abro pelo app.Path.

Ocelot: na mosca! Foi só substituir o banco no VirtualStore pelo banco que roda no project.
Muito obrigado pela dica e, principalmente, pela aula. Realmente, ao atualizar as versões do S.O., a Microsoft faz algumas modificações que nem sempre são perceptíveis para os usuários de versões anteriores do VB ...
Valeu!

Tópico encerrado , respostas não são mais permitidas