CRYSTAL REPORT COM BANCO COM SENHA
Boa noite Amigos do Vbmania...
estou precisando carregar um relatório do crystal report mas tá cada vez mais dificil.. Preciso carregar apenas 1 registro mas o banco tem senha.
Segue o código que eu estou usando
im strSql As String = [Ô]SELECT protocolo.codigo, protocolo.codcli, protocolo.status,protocolo.data, Clientes.nome FROM Clientes INNER JOIN protocolo ON Clientes.codcli = protocolo.codcli where codigo=[ô]00003[ô][Ô]
Dim ds As New DataSet()
Dim cmd As New OleDb.OleDbCommand(strSql, CON)
Dim adaptor As New OleDb.OleDbDataAdapter(cmd)
Dim crpt As New Protocolo
Dim strReportPath As String
adaptor.Fill(ds)
strReportPath = String.Concat(Replace(My.Application.Info.DirectoryPath(), [Ô]\bin\Debug[Ô], [Ô][Ô]), [Ô]\CrystalReport1.rpt[Ô])
crpt.Load(strReportPath)
[ô]CON.Open()
crpt.SetDataSource(ds)
CrystalReportViewer1.ReportSource = crpt
é um banco Access mas não to conseguindo de jeito algum.
Desde jah agradeço a atenção
estou precisando carregar um relatório do crystal report mas tá cada vez mais dificil.. Preciso carregar apenas 1 registro mas o banco tem senha.
Segue o código que eu estou usando
im strSql As String = [Ô]SELECT protocolo.codigo, protocolo.codcli, protocolo.status,protocolo.data, Clientes.nome FROM Clientes INNER JOIN protocolo ON Clientes.codcli = protocolo.codcli where codigo=[ô]00003[ô][Ô]
Dim ds As New DataSet()
Dim cmd As New OleDb.OleDbCommand(strSql, CON)
Dim adaptor As New OleDb.OleDbDataAdapter(cmd)
Dim crpt As New Protocolo
Dim strReportPath As String
adaptor.Fill(ds)
strReportPath = String.Concat(Replace(My.Application.Info.DirectoryPath(), [Ô]\bin\Debug[Ô], [Ô][Ô]), [Ô]\CrystalReport1.rpt[Ô])
crpt.Load(strReportPath)
[ô]CON.Open()
crpt.SetDataSource(ds)
CrystalReportViewer1.ReportSource = crpt
é um banco Access mas não to conseguindo de jeito algum.
Desde jah agradeço a atenção
Obrigado pela resposta..
acontece que a conexão tem a passagem da senha.. segue
Public Function CON() As OleDb.OleDbConnection
Dim conn As New OleDb.OleDbConnection([Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\banco.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456[Ô])
Try
If conn.State = ConnectionState.Closed Then conn.Open()
Catch ex As OleDb.OleDbException
MsgBox(ex.ErrorCode & [Ô] - [Ô] & ex.Message)
End Try
Return conn
End Function
eu consegui utilizando este comando:
crpt.SetDatabaseLogon([Ô]admin[Ô], [Ô]123456[Ô])
mas naum sei se isso eh o certo
acontece que a conexão tem a passagem da senha.. segue
Public Function CON() As OleDb.OleDbConnection
Dim conn As New OleDb.OleDbConnection([Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\banco.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456[Ô])
Try
If conn.State = ConnectionState.Closed Then conn.Open()
Catch ex As OleDb.OleDbException
MsgBox(ex.ErrorCode & [Ô] - [Ô] & ex.Message)
End Try
Return conn
End Function
eu consegui utilizando este comando:
crpt.SetDatabaseLogon([Ô]admin[Ô], [Ô]123456[Ô])
mas naum sei se isso eh o certo
Obrigado pela resposta... O detalhe é que essa codificação é pra VB6... e eu preciso pra VB.net... Mas acredito que resolvi o problema...
Obrigado pela atenção de todos..
Obrigado pela atenção de todos..
O arquivo .RPT está dentro da solução .NET?
Sim... Ele está integrado no Vb.net.. eu usei o seguintes comandos e [Ô]aparentemente[Ô] tá dando certo:
Dim strSql As String = [Ô]SELECT protocolo.codigo, protocolo.codcli, protocolo.status,protocolo.data, Clientes.nome FROM Clientes INNER JOIN protocolo ON Clientes.codcli = protocolo.codcli where codigo=[ô]00003[ô][Ô]
Private Sub frmProtocoloRel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As New DataSet()
Dim cmd As New OleDb.OleDbCommand(strSql, CON)
Dim adaptor As New OleDb.OleDbDataAdapter(cmd)
Dim crpt As New Protocolo
adaptor.Fill(ds)
crpt.SetDataSource(ds)
crpt.SetDatabaseLogon(BancoUser, BancoSenha)
crpt.RecordSelectionFormula = [Ô]{protocolo.codigo} = [ô][Ô] & RelatSQL & [Ô][ô][Ô]
CrystalReportViewer1.ReportSource = crpt
end sub
Deu certo pelo menos...
Não seria um tanto estranho adotar ado ao invés de ADO.net no VB.Net?? Não tem nada a ver com minha pergunta, mas acho que se for utilizar Plataforma.Net, o mais correto seria adotar o conceito .Net.. Nada contra NILSON2, mas achei meio sem sentido... Lembrando que é apenas minha opinião.. posso muito bem estar errado.
Dim strSql As String = [Ô]SELECT protocolo.codigo, protocolo.codcli, protocolo.status,protocolo.data, Clientes.nome FROM Clientes INNER JOIN protocolo ON Clientes.codcli = protocolo.codcli where codigo=[ô]00003[ô][Ô]
Private Sub frmProtocoloRel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As New DataSet()
Dim cmd As New OleDb.OleDbCommand(strSql, CON)
Dim adaptor As New OleDb.OleDbDataAdapter(cmd)
Dim crpt As New Protocolo
adaptor.Fill(ds)
crpt.SetDataSource(ds)
crpt.SetDatabaseLogon(BancoUser, BancoSenha)
crpt.RecordSelectionFormula = [Ô]{protocolo.codigo} = [ô][Ô] & RelatSQL & [Ô][ô][Ô]
CrystalReportViewer1.ReportSource = crpt
end sub
Deu certo pelo menos...
Não seria um tanto estranho adotar ado ao invés de ADO.net no VB.Net?? Não tem nada a ver com minha pergunta, mas acho que se for utilizar Plataforma.Net, o mais correto seria adotar o conceito .Net.. Nada contra NILSON2, mas achei meio sem sentido... Lembrando que é apenas minha opinião.. posso muito bem estar errado.
Tópico encerrado , respostas não são mais permitidas