PASSAR SENHA DO ACCESS PARA SUBREPORT DO CRYSTAL

ACCIOLLY 19/08/2015 11:20:56
#450216
Fala galera,
estou desenvolvendo uma aplicação de pequeníssimo porte (por isso q estou usando o access!)
Quando criei o banco coloquei senha por [Ô]segurança[Ô] (se é q isso possa se chamar de seguro! rsrsrsrs)

Então desenvolvi um relatório com subrelatorio(subreport).

Lá na codificação, eu chamo o relatório da seguinte forma:

cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];//senha fictícia rsrsrs
cr_venda.SelectionFormula = [Ô]{Saida.codigo_saida} = [Ô]+codigo_venda;
cr_venda.Action = 1;


reparem que na primeira linha eu passo a senha do banco pro crystal não dar erro ao chamar. Antes de eu colocar o subreport funcionava direitinho, agora dá um Exception. Não vou coloca-lo aqui pq eu tenho certeza de q o subreport necessita da senha do banco também, só não sei como fazer isso. se é através da codificação ou se eu posso criar um parametro no proprio crystal...

se alguém poder dar uma força estarei agradecido! estou utilizando o Visual Studio 2012 mais o crystal 8.5, e ele não está [Ô]acoplado[Ô] no visual studio, apenas importei a OCX dele.
NICKOSOFT 19/08/2015 17:05:25
#450232
Resposta escolhida
então, desde q entrei no VS eu passei a gerar os relatório/sub através de DS e DT dentro do projeto, independe a origem dos dados preencho a DT q sera o datasource do report....
ACCIOLLY 20/08/2015 14:19:28
#450271
Citação:

:
então, desde q entrei no VS eu passei a gerar os relatório/sub através de DS e DT dentro do projeto, independe a origem dos dados preencho a DT q sera o datasource do report....


Pois é cara!
Eu nunca fiz um DS com crystal. é até interessante da forma como você falou, mas no caso dessa aplicação rodar apenas na máquina q será instalada seria meio trabalhoso fazer isso. (Eu quero evitar a fadiga! rsrsrsr).
Vou dar uma pesquisada em sites extrangeiros e ver se consigo achar a solução q possa ser mais simples do q pensei (em uma linha por exemplo!)
ACCIOLLY 20/08/2015 15:20:17
#450273
Consegui resolver o problema pessoal! mais uma vez graças aos sites extrangeiros!
Vou compartilhar esse conhecimento com vcs!

Antes estava assim:

cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];//senha fictícia rsrsrs
cr_venda.SelectionFormula = [Ô]{Saida.codigo_saida} = [Ô]+codigo_venda;
cr_venda.Action = 1;


agora ficou assim:

  cr_venda.ReportFileName = Application.StartupPath + @[Ô]\Relatorios\saidas.rpt[Ô];
cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];
cr_venda.set_DataFiles(0, Application.StartupPath + @[Ô]\Banco\ControleEstoque.mdb[Ô]);

//subreport------------------------------------------------------------------------
cr_venda.SubreportToChange = [Ô]itens_saida[Ô];
cr_venda.set_DataFiles(0, Application.StartupPath + @[Ô]\Banco\ControleEstoque.mdb[Ô]);
cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];
cr_venda.SubreportToChange = [Ô][Ô];
//fim subreport-------------------------------------------------------------------

cr_venda.SelectionFormula = [Ô]{relSaidas.codigo_saida} = [Ô] + codigo_venda;
cr_venda.Action = 1;


Ou seja, na linha cr_venda.SubreportToChange = [Ô]itens_saida[Ô]; estou selecionando o subrelatório [Ô]itens_saida[Ô], depois eu seto o caminho do banco e a senha. Por fim a linha cr_venda.SubreportToChange = [Ô][Ô]; Faz com que o relatorio principal seja selecionado denovo para poder ser chamado em Action = 1

Té mais!
ACCIOLLY 20/08/2015 15:30:06
#450275
Pessoal, vou encerrar esse tópico, apesar de ter conseguido resolver meu problema, vou atribuir a melhor resposta para nosso colega NIKOSOFT pois foi o único que respondeu. Não que ele não tenha ajudado, na verdade me deu uma idéia do que fazer com projetos que envolvem MySql e outros bancos fodas!
Té Mais!
Tópico encerrado , respostas não são mais permitidas