دوستان خواهش می کنم یکم حوصله به خرج بدین. کارم بدجوری گیره این موضوعه.
من داخل فرم گزارشم این دستورات را به اینصورت نوشتم تا دیگه نیازی نباشه کاربر پسورد دیتا بیس را موقع نمایش گزارش وارد کنه ولی باز وقتی به خط *** میرسه پنجره ای باز میشه که بازم پسورد دیتابیس را باید بهش بدیم. کجای کارم مشکل داره؟ اصلا دستوراتم درسته یا نه؟
Dim m_Proj As CRAXDDRT.Application
Dim m_Report As CRAXDDRT.Report
Dim crDBTab As CRAXDRT.DatabaseTable
Dim strcon As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.RecordSet
Dim mn As String
Private Sub CommandButton1_Click()
strcon = "Provider=MSDASQL;Driver={SQL Server}; Server=NP02;uid=USER;pwd=PASS"
strcon.Open
mn = "select * from change_layer_report"
cmd.ActiveConnection = strcon
cmd.CommandText = mn
Set rs = cmd.Execute
Dim ReportName As String
ReportName = "D:\Report2.rpt"
Set m_Proj = New CRAXDDRT.Application
Set m_Report = m_Proj.OpenReport(ReportName)
For Each crDBTab In m_Report.Database.Tables
'crDBTab.SetLogOnInfo "Server Name", "Database Name", "UserID", "UserPassword"
crDBTab.SetLogOnInfo "NP02", "db1", "USER", "PASS"
Next
m_Report.Database.LogOnServer "p2ssql.dll", "np02", "db1", "USER", "PASS"
m_Report.Database.SetDataSource (rs)
CRViewer91.ReportSource = m_Report
CRViewer91.ViewReport
MsgBox "Êåíå ", vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "åÔÏÇÑ"
*** CRViewer1.Refresh
Set m_Proj = Nothing
Set m_Report = Nothing
End Sub