تحية للجميع
طبعاً يمكن تصميم التقارير على الاكسيس
ولكن هل يمكن استدعائها من داخل برامج الفيجول بيسك بدلا عن الكريستل ريبورت
هل جرب احدكم ذلك
تحية للجميع
طبعاً يمكن تصميم التقارير على الاكسيس
ولكن هل يمكن استدعائها من داخل برامج الفيجول بيسك بدلا عن الكريستل ريبورت
هل جرب احدكم ذلك
نعم يمكن ذلك ولكني جربتها مرة واحدة ولم تنجح معي وهذا بداية تعلمي للبرمجة والسبب الذي دعاني لعدم المحاولة مرة اخرى هي ليس من الواجب ان يكون لدى المستخدم اكسس حتى يتم استدعاء التقارير منه ولذلك وجب وجود حلول اخرى
يمكن فعل ذلك باستخدام تقنيات OLE Automation لأتمتة تقارير Access وهنا يشترط وجود Access على الجهاز وسأوافيكم بالتفاصيل لاحقاً إن شاء الله
الاخ محمد عبدالودود
الاخ محمد بدوي
شكراً لكما انني قمت بتصميم تقرير لقاعدة بيانات بشكل جيد وحسب طلب الجهة التي طلبته ولكنني لم استطيع عمل تقرير مشابه له سواء على اداة التقارير أو على الكريستلي ريبورت
فهل يمكن فتح التقرير للمعاينة و الطباعة من داخل برنامجي المصمم لأدارة قاعدة البيانات بواسطة VB6 وماهي شروط تحقيق ذلك
شكراً للجميع .. رعاكم الله
السلام عليكم ورحمة الله وبركاته ،،،
جربوا هذا المثال:
مثال تشغيل تقرير اكسس من فيجول بيسك :
1- في الأكسس :
نفرض لديك قاعدة بيانات بإسم :- dbname.mdb
وتحتوي على جدول بإسم :-tab1
وهذا الجدول يحتوي على حقل واحد بإسم :- sname
وتحتوي على تقرير بإسم : Rpt1
حيث يحتوي التقرير على حقل sname الذي مصدره الجدول tab1
عند حدث الفتح للتقرير :
Private Sub Report_Open(Cancel As Integer) Me.RecordSource = Recsource End Sub
وأيضاً تحتوي قاعدة البيانات على وحدة نمطية :-
تحتوي على الكود التالي :
Option Compare Database Option Explicit Global Recsource As String Sub OpenRpt(strname As String) Recsource = strname DoCmd.OpenReport "rpt1", acViewPreview DoCmd.Maximize End Sub
2- في الفيجول بيسك :
من شريط القوائم افتح قائمة Project
ثم اختر مراجع Refrences
ثم ضع علامة على المرجع التالي : Microsoft Access 8.0 Object Library
نفرض لديك فورم 1 يحتوي على زر أمر عند النقر على زر الأمر هذا تظهر inputbox
تطلب إدخال إسم من الأسماء المخزنة في الجدول .
حيث سيصبح الكود كالتالي :
Dim appAccess As Access.Application
Sub RunAccessSub()
Dim Inputmessage As String
Inputmessage = InputBox("أدخل الإسم", "")
Inputmessage = Trim(Inputmessage)
Set appAccess = CreateObject("Access.application.8")
appAccess.OpenCurrentDatabase App.Path & "dbname.mdb", False
appAccess.Run "OpenRpt", "select * from tab1 where sname='" & Inputmessage & "'"
Set appAccess = Nothing
End Sub
Private Sub Command1_Click()
Call RunAccessSub
End Subنفذ البرنامج بعد تعبئة الجدول بالاسماء التجريبية .
مثال تشغيل تقرير اكسس من فيجول بيسك :
1- في الأكسس :
نفرض لديك قاعدة بيانات بإسم :- dbname.mdb
وتحتوي على جدول بإسم :-tab1
وهذا الجدول يحتوي على حقل واحد بإسم :- sname
وتحتوي على تقرير بإسم : Rpt1
حيث يحتوي التقرير على حقل sname الذي مصدره الجدول tab1
عند حدث الفتح للتقرير :
Private Sub Report_Open(Cancel As Integer) Me.RecordSource = Recsource End Sub
وأيضاً تحتوي قاعدة البيانات على وحدة نمطية :-
تحتوي على الكود التالي :
Option Compare Database Option Explicit Global Recsource As String Sub OpenRpt(strname As String) Recsource = strname DoCmd.OpenReport "rpt1", acViewPreview DoCmd.Maximize End Sub
2- في الفيجول بيسك :
من شريط القوائم افتح قائمة Project
ثم اختر مراجع Refrences
ثم ضع علامة على المرجع التالي : Microsoft Access 8.0 Object Library
نفرض لديك فورم 1 يحتوي على زر أمر عند النقر على زر الأمر هذا تظهر inputbox
تطلب إدخال إسم من الأسماء المخزنة في الجدول .
حيث سيصبح الكود كالتالي :
Dim appAccess As Access.Application
Sub RunAccessSub()
Dim Inputmessage As String
Inputmessage = InputBox("أدخل الإسم", "")
Inputmessage = Trim(Inputmessage)
Set appAccess = CreateObject("Access.application.8")
appAccess.OpenCurrentDatabase App.Path & "dbname.mdb", False
appAccess.Run "OpenRpt", "select * from tab1 where sname='" & Inputmessage & "'"
Set appAccess = Nothing
End Sub
Private Sub Command1_Click()
Call RunAccessSub
End Subنفذ البرنامج بعد تعبئة الجدول بالاسماء التجريبية .
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…