الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

رسالة خطأ عند عرض تقرير Crystal Report مرتين!

بدأه أبوبكر بن سويدان في 4 يونيو 2013 · 0 رد · 433 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم ورحمة الله

قمت بإنشاء تطبيق يتعامل مع قواعد بيانات MS Access وتقارير Crystal Reports.
أقوم بتخزين بيانات في الجدول بنجاح، ومن ثم يتم عرض تقرير بهذه البيانات.

ولدي روتين خاص بعرض تقرير بناء على رقم الـID.

لأول مرة يقوم بعرض التقرير بلا أي مشاكل، ولكن عند طلب عرض التقرير مجدداً لأي سبب تظهر رسالة خطأ كما بالصورة.

 

post-267014-0-51780200-1370375687_thumb.

 

علماً بأن برمجة 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

 

فأين المشكلة؟

لكم تحية.

مواضيع مشابهة