Olá pessoal. Parabéns pelo site, espero ajudar e ser ajudado aqui.
Vamos lá:
Desenvolvi um programa no VB6, meu banco de dados é Access (na máquina tenho instalado o office 2003. Quanto fui criar o banco eu criei no 2000, converti para 97 e então entendo que meu banco no programa é access 97)
Eu faço a conexão com o banco usando jet 4.0 (3.51 dá no win XP, no vista precisou ser 4.0).
Me corrijam se falar besteira, sou quase leigo.
Então, uso ADO, msflexgrid, etc.
Fiz uns relatórios no Crystal Reports XI, ficaram muito bons, mas apanhei muito e não consegui abrir nenhum a partir do meu programa, não acertei o código, olhei livros, apostilas, etc.
Então tentei o data report, não consegui modelar os relatórios, pois não me pareceu ter a mesma liberdade como no crystal, com relação a mover itens, redimensionar como quiser, etc, pareceu meio travado, meio quadradão, não gostei.
Então criei os mesmos relatórios no access, junto com o meu banco de dados, ficaram excelentes, iguais aos que tinha feito no crystal.
Apanhei mas consegui fazer abrir pelo vb, usei aquele famoso código que faz abrir o access, abrir o banco, abrir o relatório, imprimir, fechar o relatório, fechar o banco, fechar o access.
Aí surgiram os seguintes problemas:
1) sempre está ficando um processo MSACCESS aberto no windows, a cada impressão aumenta um processo aberto até acabar a memória do Windows. E estou usando o set msaccess = nothing (algo assim, pra liberar)
2) Não quero depender do meu cliente ter access na máquina, qualquer que seja a versão, quero que funcione mesmo que não tenha, somente com a minha aplicação.
3) Um dos relatórios é em A3. Eu fiz o código pra A3, ele está imprimindo em papel A4, mas dá pra ver que o relatório está mesmo no A3, ele corta o que não cabe. Ou seja, acertei o tamanho do relatório mas não o tamanho do papel.
4) Tentei implementar o Access Runtime pra não depender de access instalado, mas não consegui fazer / não sei fazer.
5) Tentei implementar relatórios snapshot. Exportei um relatório do access para snapshot, extensão .snp, e tentei colocar no meu programa um código para abrir esse snp ao invés de chamar o access, também não consegui.
Caso tivesse conseguido, ele chamaria o mesmo snapshot sempre (com as mesmas informações) ou o snapshot teria os dados atualizados com base no banco de dados? Eu precisaria exportar outra vez para ele estar atualizado ou a cada abertura ele se atualiza, eu mandando filtros, etc. ?
Enfim, vejam que apanho bastante do vb, por favor me ajudem no que imaginam ser útil.
Só digo que no momento sugerir para eu migrar para VB.net, access 2007, etc, não adianta, quero resolver com as ferramentas que tenho.
Vocês que entendem bem disso, me ajudem por favor, ficarei bastante agradecido.
Um grande abraço a todos.
meagain