CRYSTAL REPORT XI 11- MSG ERRO VIEWER VB6
Tenho um sistema cujo banco de dados é MDB e os relatórios estão em Crystal Report 11.
Em algumas exibições dos relatórios é exibida a mensagem de arro abaixo:
Database Connector Error: [Ô]DAO Error Code 0xc26[Ô]
Source: DAO.fields
E o relatório não é exibido em tela. Após clicar em ok, e no botão refresh do viewer, o relatório é exibido normalmente.
Alguém sabe como resolver isto?
Em algumas exibições dos relatórios é exibida a mensagem de arro abaixo:
Database Connector Error: [Ô]DAO Error Code 0xc26[Ô]
Source: DAO.fields
E o relatório não é exibido em tela. Após clicar em ok, e no botão refresh do viewer, o relatório é exibido normalmente.
Alguém sabe como resolver isto?
cara.. da uma olahda no seu connector ai.. ou o seu codigo que vc pede para imprimir o relatorio.. passa ele ai.. vamos ver o que da para mecher nele.
Tenho um form com um viewer do Crystal 11 o qual é [Ô]chamado[Ô] por outros forms que necessitam da exibição de relatórios.
o Código do frmRelatorio é:
Option Explicit
Private crApp As New CRAXDDRT.Application
Private crReport As New CRAXDDRT.Report
Private mflgContinuar As Boolean
Private mstrParametro1 As String
Private mlngParametro2 As Long
Private Sub CRViewer_GotFocus()
ExibeRelatorio
End Sub
Private Sub Form_Load()
ImpressoraAntiga = Printer.DeviceName
End Sub
Private Sub ExibeRelatorio()
On Error Resume Next
Screen.MousePointer = vbHourglass
Set crReport = crApp.OpenReport(app.path & [Ô]\RELAT.rpt[Ô], 1)
crReport.Database.SetDataSource (app.path & [Ô]\bd.MDB[Ô])
crReport.Database.Tables(1).Location = app.path & [Ô]\bd.MDB[Ô]
crReport.Database.Tables(1).TestConnectivity
CRViewer.ReportSource = crReport
CRViewer.DisplayGroupTree = False
CRViewer.ViewReport
Screen.MousePointer = vbDefault
End Sub
O que é estranho é o seguinte: num determinado momento a grande maioria dos relatórios não ocorre nenhum erro e QUASE todos eles são exibidos corretamente. Após fechado o sistema e reiniciado, alguns relatórios que estavam sendo exibidos corretamente passam a exibir o erro acima, e os que estavem com erro funcionam corretamente, sem que nenhuma linha de código tenha sito alterada!!!
é coisa de maluco mesmo...
O que acha que é?
o Código do frmRelatorio é:
Option Explicit
Private crApp As New CRAXDDRT.Application
Private crReport As New CRAXDDRT.Report
Private mflgContinuar As Boolean
Private mstrParametro1 As String
Private mlngParametro2 As Long
Private Sub CRViewer_GotFocus()
ExibeRelatorio
End Sub
Private Sub Form_Load()
ImpressoraAntiga = Printer.DeviceName
End Sub
Private Sub ExibeRelatorio()
On Error Resume Next
Screen.MousePointer = vbHourglass
Set crReport = crApp.OpenReport(app.path & [Ô]\RELAT.rpt[Ô], 1)
crReport.Database.SetDataSource (app.path & [Ô]\bd.MDB[Ô])
crReport.Database.Tables(1).Location = app.path & [Ô]\bd.MDB[Ô]
crReport.Database.Tables(1).TestConnectivity
CRViewer.ReportSource = crReport
CRViewer.DisplayGroupTree = False
CRViewer.ViewReport
Screen.MousePointer = vbDefault
End Sub
O que é estranho é o seguinte: num determinado momento a grande maioria dos relatórios não ocorre nenhum erro e QUASE todos eles são exibidos corretamente. Após fechado o sistema e reiniciado, alguns relatórios que estavam sendo exibidos corretamente passam a exibir o erro acima, e os que estavem com erro funcionam corretamente, sem que nenhuma linha de código tenha sito alterada!!!
é coisa de maluco mesmo...
O que acha que é?
Cara..eu pessoalmente tenho uma dsn no sistema operacional apontando o caminho do banco.. eu faço assim para imprimir o relatorio.
esses if acima sao formulas. ok?
Set crxRpt = crxApp.OpenReport(App.Path & [Ô]\RelatoriosCrystalptCliComValores.rpt[Ô])
crxRpt.Database.Tables(1).SetLogOnInfo [Ô]MyDSNCRM[Ô], BASEDEDADOS, USUARIO, SENHA
crxRpt.Database.Tables(2).SetLogOnInfo [Ô]MyDSNCRM[Ô], BASEDEDADOS, USUARIO, SENHA
crxRpt.Database.Tables(3).SetLogOnInfo [Ô]MyDSNCRM[Ô], BASEDEDADOS, USUARIO, SENHA
Set crxTables = crxRpt.Database.Tables
For Each crxTable In crxTables
With crxTable
.Location = .Name
End With
Next
sCriterio = [Ô][Ô] & [Ô]{cadpessoasendereco.endprincipal}=1 and {cadpessoascontato.contprincipal} = 1[Ô]
If txtCidade.Text <> [Ô][Ô] Then sCriterio = sCriterio & [Ô] and {cadpessoasendereco.endcidade}=[ô][Ô] & txtCidade.Text & [Ô][ô][Ô]
If ChAtivos.Value = True Then sCriterio = sCriterio & [Ô] and {cadpessoas.pessativo}=1[Ô]
If ChInativos.Value = True Then sCriterio = sCriterio & [Ô] and {cadpessoas.pessativo}=0[Ô]
If txtCidade.Text <> [Ô][Ô] Then crxRpt.FormulaFields.GetItemByName([Ô]forcidade[Ô]).Text = [Ô][ô][Ô] & txtCidade.Text & [Ô][ô][Ô]
WITH CRViewer
.ReportSource = crxRpt
crxRpt.RecordSelectionFormula = sCriterio
.ViewReport
.Zoom 80
END WITH
esses if acima sao formulas. ok?
Em relação à s formulas, ok!, mas em relação à DSN nunca fiz nada nesse sentido, então se puder me dar uma ajudinha...
Preciso criar uma conexão ODBC? Se sim, como faço para mudá-la em tempo de execução quando a localização do MDB é alterada?
é necessário incluir algum componente ou referência no VB?
Ela pode ser usada em conjunto com outra conexão?
pode ser usada normalmente.. veja so..
crxRpt.Database.Tables(3).SetLogOnInfo [Ô]MyDSNCRM[Ô], BASEDEDADOS, USUARIO, SENHA
MYDSNCRM = nome da minha dsn que fiz la em odbc
BASEDEDADOS = nome do banco de dados é uma string.. vc pode colocar direto o nome da base .. mais ou menos assim...
MYDSN,[Ô]suasenha[Ô],[Ô]usuariodobanco[Ô],[Ô]senhadobanco[Ô].. entendeu ?
crxRpt.Database.Tables(3).SetLogOnInfo [Ô]MyDSNCRM[Ô], BASEDEDADOS, USUARIO, SENHA
MYDSNCRM = nome da minha dsn que fiz la em odbc
BASEDEDADOS = nome do banco de dados é uma string.. vc pode colocar direto o nome da base .. mais ou menos assim...
MYDSN,[Ô]suasenha[Ô],[Ô]usuariodobanco[Ô],[Ô]senhadobanco[Ô].. entendeu ?
Tópico encerrado , respostas não são mais permitidas