تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سورس كود لصناعة برنامج بمكتبة الادو بالكود
#1
بسم الله الرحمن الرحيم

هذا برنامج بمكتبة الادو سوف اتطرق لبعض النقاط فيه وباقى الاكواد اكيد الكل يعرفها وجميعها مبنية على الجزء الخاص بـ sql واى احد من الاعضاء يحب يستفسر عن تفسير لاى كود انا موجود وسوف اقوم بشرح اى نقطة تقف مع اى عضو .. وانا سوف اعمل فيديو لكيفية تصميم تقرير بالكريستال ريبورت وكيفية عمل برنامجى setup ببرنامج سيت اب فاكتورى ....
1. الموديول رقم 1 /
فى هذا الموديول بعد المتغيرات ..
نبتدى بالمتغير رقم 1 و 2
• متغير من نوع داتا بيز للداتا الرئيسية
Global cn As New ADODB.Connection
• متغير من نوع داتا بيز للداتا الخاصة بالتقارير
Global db As New ADODB.Connection

المتغير رقم 3 و 4
• متغيران من نوع جدول للتعامل مع الجداول
Global rs As New ADODB.Recordset
Global rs1 As New ADODB.Recordset

المتغير رقم 5 و 6
• متغيران من نوع جدول للتعامل مع عمليات البحث
Global ck As New ADODB.Recordset
Global ck1 As New ADODB.Recordset
المتغير رقم 7
• متغير من نوع جدول للتعامل مع التقارير
Global rp As New ADODB.Recordset

المتغير رقم 8 و 9 و 10
• متغير عام من نوع رقمى
Public f As Integer
• متغيران نصيان لعمليات البحث
Global v_find As String
Global v_find1 As Integer

--------------------------------------------------------
• متغيران لحماية الداتا
Global aa As String * 10
Global bb As String * 10
-------------------------------------------------------
• متغير لعمل حفظ واستعادة الداتا
Global l As New FileSystemObject
2. الموديول رقم 2
وهو عبارة عن جعل شكل الفورمة بشكل محدد ...

3. الفورم رقم 1
تتكون من مجموعة مفاتيح وهى عبارة عن شاشة list
لاختيار الشاشات التى سوف تتعامل معها .
سوف نقوم بشرح الكود الموجود فى حدث الفورم لود
هذا الجزء خاص بتعريف الايرور يعنى لو حدث اى خطأ
تفاده واذهب للسطر اللى فيه 100
On Error GoTo 100
هذا الجزء لجعل الشاشة بشكل معين
RoundRect Me, 20, 30

متغير لكى يحمل اسم الداتا بتاعت التقرير التى سوف يتم انشاءها
Dim sdf As String
متغير لكى ينشئ داتا بيز
Dim catNewDB As ADOX.Catalog
Set catNewDB = New ADOX.Catalog
sdf = (App.Path & "\report\reports.jio")

جملة شرطية اذا كان المتغير الخاص بداتا التقارير مفتوح يتقفل
If db.State > 0 Then
db.Close
End If
انا هنا بعمل عملية بحث فى فولدر التقارير اذا كانت الداتا موجود يحذفها وينشأها من جديد
If Dir(App.Path & "\report\reports.jio") <> "" Then
Kill (App.Path & "\report\reports.jio")
End If

If Dir(App.Path & "\report\reports.jio") = "" Then

catNewDB.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sdf & _
";Jet OLEDB:Engine Type=5;"
Set catNewDB = Nothing
If db.State > 0 Then
db.Close
End If
'
db.Open "provider=microsoft.jet.oledb.4.0;data source=" & (App.Path & "\report\reports.jio")
'
db.Execute "create table report"
End If
هذا الجزء انا بستخدمه عند عمل كونكت على الداتا وبستعمله مرة اخرى بعد عمل كونكت مباشرة وهذا الجزء خاص بحماية الداتا من العبث واللعب فى البيانات المسجلة بها وشرحه ان انا بفتح الداتا عن طريق البينارى فايل .
Open (App.Path & "\data\vb4arb.mdb") For Binary As #1

Get #1, 58, aa
Get #1, 68, bb

Put #1, 58, bb
Put #1, 68, aa
Close #1
انا هنا بفتح الداتا اللى البرنامج بتاعى هيتعامل معاها ويسجل بها البيانات

If cn.State > 0 Then
cn.Close
End If

cn.Open "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\data\vb4arb.mdb"
دى متغيرات الجداول والاوامر هنا معناها ان الداتا موجود على الجهاز الحالى ويمكن هتلاحظو ان انا لم استعمل اوامر فتح الجداول لماذا ؟
لنفترض يا جماعة ان انا عندى حجم بيانات معدى مليون سجل وانا عندى اكثر من جدول به حجم بيانات كبير
تخيلو الفترة اللى البرنامج بتاعى هيستغرقها فى كل مره يتفتح فيها عشان بس يقرأ السجلات دى من الجداول
وانا عامل مثال لمفتاح فى الفورم تسجيل بيانات اسم جديد عن كيفية اضافة 100 الف سجل جربو كده تزودو تضيفو مليون سجل او حتى نصف مليون وجربو تفتحو البرنامج بالطرق التقليدية وشوفو هيستغرق وقت قد ايه وده هيكون بالنسبة لجدول واحد فمابالك اذا كان عندى اكثر من جدول
rs.Cursor******** = adUseClient
rs1.Cursor******** = adUseClient
ck.Cursor******** = adUseClient
ck1.Cursor******** = adUseClient
rp.Cursor******** = adUseClient

If db.State > 0 Then
db.Close
End If
db.Open "provider=microsoft.jet.oledb.4.0;data source=" & (App.Path & "\report\reports.jio")

Open (App.Path & "\data\vb4arb.mdb") For Binary As #1

Get #1, 58, aa
Get #1, 68, bb

Put #1, 58, bb
Put #1, 68, aa
Close #1
Exit Sub
100:
لينك السورس كود

http://www.mediafire.com/?apg8pv5450vg6ia
الرد }}}
تم الشكر بواسطة:
#2
بارك الله فيك أخى
الرد }}}
تم الشكر بواسطة:
#3
تسلم على المجود

جعله الله فى ميزان حسناتك
الرد }}}
تم الشكر بواسطة:
#4
مجهود رائع مشكور
لا اله إلا الله محمد رسول الله
الرد }}}
تم الشكر بواسطة:
#5
شكرا أخي.
حفظك الله
وكتب الله أجرك
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم