04-06-13, 11:51 PM
السلام عليكم ورحمة الله
قمت بإنشاء تطبيق يتعامل مع قواعد بيانات MS Access وتقارير Crystal Reports.
أقوم بتخزين بيانات في الجدول بنجاح، ومن ثم يتم عرض تقرير بهذه البيانات.
ولدي روتين خاص بعرض تقرير بناء على رقم الـID.
لأول مرة يقوم بعرض التقرير بلا أي مشاكل، ولكن عند طلب عرض التقرير مجدداً لأي سبب تظهر رسالة خطأ كما بالصورة.
[ATTACH=CONFIG]2918[/ATTACH]
علماً بأن برمجة Form عرض التقرير كما يلي:
والاتصال معرف في Module وهو كالتالي:
فأين المشكلة؟
لكم تحية.
قمت بإنشاء تطبيق يتعامل مع قواعد بيانات MS Access وتقارير Crystal Reports.
أقوم بتخزين بيانات في الجدول بنجاح، ومن ثم يتم عرض تقرير بهذه البيانات.
ولدي روتين خاص بعرض تقرير بناء على رقم الـID.
لأول مرة يقوم بعرض التقرير بلا أي مشاكل، ولكن عند طلب عرض التقرير مجدداً لأي سبب تظهر رسالة خطأ كما بالصورة.
[ATTACH=CONFIG]2918[/ATTACH]
علماً بأن برمجة Form عرض التقرير كما يلي:
كود :
Imports CrystalDecisions.Shared
Imports CrystalDecisions.Shared.OpenReportMethod
Imports CrystalDecisions.CrystalReports.Engine
Imports System.Data.OleDb
Imports System.Data
Public Class frmStool_2_Report
Public RecID As Integer
Private Sub frmStool_2_Report_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
RecID = 0
CryStool.ReportSource = Nothing
frmMain.PatID = 0
frmMain.PatName = Nothing
frmMain.lblPatName.Text = Nothing
End Sub
Private Sub frmStool_2_Report_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rpt As New StoolReport
Dim EmpSql As String = "SELECT * FROM StoolAnalysis WHERE ID=" & RecID & ""
Dim Empdataset As New DataSet
If Con.State = ConnectionState.Closed Then
Con.Open()
Dim EmpAdapter As New OleDbDataAdapter(EmpSql, Con)
EmpAdapter.Fill(Empdataset, "StoolAnalysis")
CryStool.ReportSource = Nothing
rpt.SetDataSource(Empdataset)
CryStool.ReportSource = rpt
CryStool.Refresh()
Con.Close()
Else
Dim EmpAdapter As New OleDbDataAdapter(EmpSql, Con)
EmpAdapter.Fill(Empdataset, "StoolAnalysis")
CryStool.ReportSource = Nothing
rpt.SetDataSource(Empdataset)
CryStool.ReportSource = rpt
CryStool.Refresh()
Con.Close()
End If
Empdataset.Reset()
End Sub
End Class
والاتصال معرف في Module وهو كالتالي:
كود :
Imports System.Data.OleDb
Module functions
Public Con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\azoumi.mdb")
End Module
فأين المشكلة؟
لكم تحية.