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

كل يوم كود

بدأه هانى عوض في 7 مارس 2008 · 46 رد · 7,758 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارتباطاً بمنتدى الفريق العربى للبرمجة وتقديراً لكل مجهودات القائمين على رعايته...

فكرت أن أفيد ولو فئة قليلة بالقليل الذى عندى.. والذى تعلمته عبر سنوات كهواية... ومن ثم تحول الموضوع إلى احتراف ومن ثم بيع البرمجيات..

اعترافاً بالجميل.. والتعلم والاستزادة.. فالعلم لا حد له..

لذا فكرت فى عمل موضوع خاص فقط بالأكواد البرمجية... وسيكون بسيط غاية فى البساطة..

ولكن لن يكون مرتب بالقدر الكافى بل سيكون عبارة عن أفكار منوعة ولا يتوجب أن تكون مرتبطة ببعضها...

ونظراً لضيق الوقت معى... وحفاظاً على الاستمرارية.. سأقوم بوضع الأكواد واحد تلو الآخر بهدوء

سأبدأ الأن إن شاء الله:

كود1

هذا الكود يقوم بإدارة الجداول المرتبطة

	DoCmd.RunCommand acCmdLinkedTableManager

هذه الطريقة تعتبر أبسط الطرق فى استدعاء نافذة إدارة الجداول المرتبطة أو Linked Table Manager وهى التى تقوم بدورها بعمل ضبط مسارات الجداول التى تم تقسيمها إلى قاعدة منفصلة وربطها بقاعدة أخرى .. نفس فكرة Shortcut الموجودة بالـ Windows

أو يمكن كتابته هكذا

   CommandBars("Menu Bar"). _
   Controls("Tools"). _
   Controls("Database utilities"). _
   Controls("Linked Table Manager"). _
   accDoDefaultAction

ولكن هذه الطريقة لها بعض العيوب .. وهى أنه لو كانت لغة واجهة الأوفيس ليست English فلن تحصل سوى على بعض الأخطاء التى ستظهر لعدم وجود مسارات القائمة التى تم تحديدها...

ويوجد عدة أفكار أخرى مثل كود يقوم بعمل شريط أدوات ويقوم بوضع أيقونة الأمر من خلال كود يحتوى على رقم تنفيذ الأمر وعمل SendKeys ومن ثم يتم تنفيذه.... ولكننى لا أميل لاستخدام هذه الطرق...

لذا فالطريقة الأولى أفضل.

وشكراً

تم تعديل هذه المشاركة بواسطة هانى عوض في 29 أبريل 2008 في 11:49

#2

جعل الله مساهماتك في ميزان حسناتك ثقلا يوم القيامة

الالف ميل تبدأ بخطوة

#3

واحب ان اضيف لك اخي الكريم ان الذي يسبق هذا الكود :

	DoCmd.RunCommand acCmdLinkedTableManager

هو الكود اللي يقوم بربط الجدول من قاعدة بيانات خارجية وهو كالاتي :

DoCmd.RunCommand acCmdacCmdLinkTables

بداية جيدة اخي الكريم ونحن نتمنى المزيد من دروسك القيمة ، واسمحلي ان كان عندي اضافة متواضعة احب ان افيد نفسي وافيد الاخرين بها ان اضيفها مع مشاركاتك .

واتمنى التوفيق للجميع

اخوك حازم

#4

بارك الله فيك واصل المشوار

#5

شكراً أخوانى على تعليقكم

وبالنسبة لتعليق أخى hazim_asia طبعاً انت صح

ولكن كما ذكرت قبلاً

اقتباس
ولكن لن يكون مرتب بالقدر الكافى بل سيكون عبارة عن أفكار منوعة ولا يتوجب أن تكون مرتبطة ببعضها...

كود2

سؤال هل تستطيع قراءة هذا "بâقزîك!بâغزةي!ââةزنحت"

هل تعلم أن هذا"الفريق العربى للبرمجة"....

فلنرى كيف يتم ذلك.

كود اليوم من أهم الأكواد التى تستخدم فى تشفير البيانات وتستخدم غالباً فى شاشات تسجيل الدخول والصلاحيات للمستخدمين

Option Compare Database
' last updated 08-03-2008   Hany Awad
Private Sub cmdDecrypt_Click()
Dim sDecryptedMessage As String
Dim sDecryptedCharacter As String
Dim iCounter As Integer
If txtmessage.Value <> "" Then
For iCounter = 1 To Len(txtmessage.Value)
sDecryptedCharacter = Asc(Mid(txtmessage.Value, iCounter, 1))
sDecryptedCharacter = Chr(sDecryptedCharacter - 1)
sDecryptedMessage = sDecryptedMessage + sDecryptedCharacter
Next iCounter
txtmessage.Value = sDecryptedMessage
End If
End Sub
Private Sub cmdEncrypt_Click()
Dim sEncryptedMessage As String
Dim sEncryptedCharacter As String
Dim iCounter As Integer
If txtmessage.Value <> "" Then
For iCounter = 1 To Len(txtmessage.Value)
sEncryptedCharacter = Asc(Mid(txtmessage.Value, iCounter, 1))
sEncryptedCharacter = Chr(sEncryptedCharacter + 1)
sEncryptedMessage = sEncryptedMessage + sEncryptedCharacter
Next iCounter
txtmessage.Value = sEncryptedMessage
End If
End Sub
Private Sub CmdClose_Click()
DoCmd.Close
End Sub

يقوم هذا الكود بعمل تشفير للبيانات المدخلة بعد كتابتها بالطريقة الصحيحة يقوم بتحويلها لمقابلاتها من حروف ورموز وأرقام بغرض عدم التعرف على البيانات المدخلة.

حيث:

Encrypt : يقوم بتشفير البيانات المدخلة.

Decrypt: يقوم بإرجاع القيم المشفرة لعرضها بطريقة صحيحة.

مرفق مثال على ذلك

وشكراً

HEncrypt.rar

#6

كود3

طريقة عمل شاشة استجابة لحدث برمجياً استناداً إلى شرطين Yes , No

Dim Response As Variant
	Response = MsgBox("هل تريد الخروج من البرنامج؟", vbYesNo, "تنبيه")
If Response = vbYes Then
	DoCmd.Close 'يمكنك كتابة ما تريد تنفيذه هنا
	End If
If Response = vbNo Then
	DoCmd.CancelEvent 'يمكنك كتابة ما تريد تنفيذه هنا
	End If

قمنا بعمل متغير variant ووضعنا رسالة بها Yes , No ووضعنا شرطين لتنفيذ استجابة الأمرين باستخدام if ويمكنك من خلال هذه الطريقة وضع ماتريد تنفيذه بعد الجملة الشرطية

معنى هذا الكود:

إذا أردت الخروج من البرنامج إضغط Yes

إذا أردت إلغاء تنفيذ الحدث إضغط No

وإلى اللقاء فى كود آخر

#7

شكرا _ جزاك لله خيرا

#8

مـــجـــهـــود تــشــكـــر عــلــيـــة

بس فية طلب :

ياليت كود حذف البيانات بعد مأاذن لة تشرح هنا

#9

بارك الله فيك واصل المشوار

لا تؤجل عمل اليوم الي الغد

#10

الله يعطيك العافيه والقوووه

انا محتاج لكود معين ومشكلتي

ان لدي اكثر من نموذج واكثر من تقرير والنماذج كلها منبثقه وعند طلب تقرير فانه يهر خلف النماذج ماهو الكود المناسب لجعل التقارير

تظهر امام النماذج

#11

شكراً لكم أخوانى

بالنسبة للأخ Firsr Road

اقتباس
بس فية طلب :

ياليت كود حذف البيانات بعد مأاذن لة تشرح هنا

إذا كنت تقصد استخدام أمر حذف داخل نموذج لحقل ما يمكنك استخدام هذا الكود

   DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
	DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

أما إذا كنت تقصد إفراغ بيانات جدول. فيتم ذلك عن طريق عمل استعلام حذف.

وبالنسبة لسؤال الأخ kkaa

اقتباس
انا محتاج لكود معين ومشكلتي

ان لدي اكثر من نموذج واكثر من تقرير والنماذج كلها منبثقه وعند طلب تقرير فانه يهر خلف النماذج ماهو الكود المناسب لجعل التقارير

تظهر امام النماذج

الموضوع بسيط جداً..

1- قم بتحديد خاصية منبثق و (شكلى أو مشروط) لكل النماذج وكل التقارير

2- وفى حدث عند الفتح لكافة التقارير ضع هذا الكود

	DoCmd.Maximize

وإن شاء الله هاتظبط معاك

وشكراً مرة أخرى

تم تعديل هذه المشاركة بواسطة hongylover في 10 مارس 2008 في 19:38

#12
hongylover كتب:
شكراً لكم أخوانى

بالنسبة للأخ Firsr Road

إذا كنت تقصد استخدام أمر حذف داخل نموذج لحقل ما يمكنك استخدام هذا الكود

   DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
	DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

أما إذا كنت تقصد إفراغ بيانات جدول. فيتم ذلك عن طريق عمل استعلام حذف.

أخي اولاً اشكرك على الرد

ومااقصدة هنا انني اريد حذف بيانات معينة من النموذج ( اي امر حذف داخل النموذج )

مرفق صورة للكود ويوجد بة الخطاء

post-149643-1205104106_thumb.jpg

#13

مرفق صورة لتوضيح خاصية شكلى أو مشروط

post-96562-1205167254_thumb.jpg

تم تعديل هذه المشاركة بواسطة hongylover في 10 مارس 2008 في 19:42

#14

بالنسبة لسؤال أخى Firsr Road

اقتباس
أخي اولاً اشكرك على الرد

ومااقصدة هنا انني اريد حذف بيانات معينة من النموذج ( اي امر حذف داخل النموذج )

مرفق صورة للكود ويوجد بة الخطاء

لايوجد خطأ بالكود إطلاقاً

تأكد من وجود الملف "012.xls" على محرك الأقراص "C" وتأكد من عدم فتحه أثناء تنفيذ هذا الكود.فلايمكن حذفه وهو لازال عالق فى الذكرة.

#15

كود 4

هل واجهتك مشاكل فى عرض التقارير وضبط حجمها

تفضل الكود الآتى

	On Error Resume Next
	Reports("فاتورة").Printer.PaperSize = acPRPSB5
	DoCmd.OpenReport "فاتورة", acViewPreview, "", "", acDialog
	If Err = 2501 Then Err.Clear

أول سطر = تجاهل رسائل الخطاء التى ممكن أن تحدث

ثانى سطر=يقوم بضبط حجم صفحة التقرير إلى مقاس B5 "ويمكنك تغييره إلى أى مقاس آخر مثلاً acPRPSA4 ومعناه مقاس A4"

ثالث سطر= يقوم بفتح التقرير على شكل مربع حوار فى طريقة معاينة قبل الطباعة.

رابع سطر= يتجاهل رسالة خطأ 2501 والتى تنتج عن خطأ فى بيانات التقرير

وعموماً لتجاهل أى رسائل يظهر بها أخطاء السطر الأول والسطر الأخير دائماً يفى بالمطلوب مع تغيير رقم "2501" حسب الرقم الظاهر فى رسالة الخطأ التى يظهرها أكسس.

وشكراً على حسن المتابعة... وإلى اللقاء مع كود آخر ..

#16

السلام عليكم اخي الكريم hongylover

بارك الله فيك وآدام عليك نعمة العلم

اخوك فى الله

Microsoft Certified DataBase Administrator MCDBA

#17

بسم الله الرحمن الرحيم

بارك الله فيك

تابع والى الامام

#18
hongylover كتب:
بالنسبة لسؤال أخى Firsr Road

لايوجد خطأ بالكود إطلاقاً

تأكد من وجود الملف "012.xls" على محرك الأقراص "C" وتأكد من عدم فتحه أثناء تنفيذ هذا الكود.فلايمكن حذفه وهو لازال عالق فى الذكرة.

أخي هل انشئ المجلد في الــC او انة موجود في محرك الاقراص

واذا انشاتة فين اضع الملف على طول في الـــ C او في مجلد بالــC

أرجــو شــرح الـمـوضـوع

#19

أخى Firsr Road

Kill ("C:\012.xls")

هذا الكود معناه: امسح الملف المسمى "012.xls" الموجود على محرك الأقراص المسمى "C"

لكن إذا أردت وضعه فى مجلد فهذه الطريقة

Kill ("C:\HData\012.xls")

هذا الكود معناه: امسح الملف المسمى "012.xls" الموجود داخل مجلد "Hdata" الموجود على "C"

أرجو أن يكون اتضح الأمر لك

#20
hongylover كتب:
أخى Firsr Road

Kill ("C:\012.xls")

هذا الكود معناه: امسح الملف المسمى "012.xls" الموجود على محرك الأقراص المسمى "C"

أرجو أن يكون اتضح الأمر لك

أخي الكريم تحملني شوي :D

انت تقول معنى الكود : امسح الملف المسمى 012.xls

طيب مهي مشكلة . المشكلة الان كيف اعثر على هذا الملف بحثت عنة في محرك الاقراص ولم اجدة .

الســـــــؤال هنا :

الملف المسمى 012.xls هل هو موجود طبيعي في محرك الاقراص ام انة لابد من انشاء الملف .

واذا كان لاابد من انشائة كيف اقوم بانشاء الملف

واذا كان تقدر ان ترسلي الملف وانا اضعة في محرك الاقراص c واوافيك بنتيجة

#21

أخى Firsr Road

هذا ملف Excel عادى جداً وربما لا يحتوى على بيانات..

طبعاً لا يوجد تلقائياً من نفسه...

يمكنك عمله بطريقة سهلة جداً

1-إذهب إلى محرك الأقراص "C"

2- كليك يمين بالماوس واختار new

3- اختار Microsoft Excel Worksheet

4- سيظهر لك الآتى "New Microsoft Excel Worksheet.xls"

5- قم بعمل rename لهذا الملف ليصبح "012.xls"

ولكن فى كل مرة ستجيب على الرسالة بـ "Yes" سيتم مسحه....

لذا لا أجد سبب لعمل هذا الأمر مادمت لا تعلمه..

لأن هذا الأمر غالباً يستخدم كحماية برمجيات تعتمد فى تشغيلها على ملف موجود على محرك أقراص يتم تحديده وفى خلال فترة زمنية تجريبية بعد انتهائها يتم مسح الملف وبذلك لن تفتح القاعدة إطلاقاً.

أو لأى غرض آخر....

وعموماً يمكنك تجاهل هذا الأمر بوضع هذه العلامة ' أمام السطر الذى لا تريد تشغيله أو مسحه.

إذا واجهتك مشكلة أخرى قم بارفاق القاعدة فى موضوع مستقل وسيتم التوصل معك لحل يرضيك إن شاء الله.

#22

كود 5

هل تريد تسجيل مكتبات ocx الخاصة بك?

هل تريد نسخ ملفاتك برمجياً إلى أى مكان تحدده؟؟

هل تريد عمل setup لقاعدة بياناتك دون اللجوء إلى MS Developer؟؟؟؟

هذه هى الطريقة..

ملحوظة "تم طرح هذه الفكرة من قبل فى مشاركة لى ولكن أردت أن أزيد عليها هنا"

أولاً: هذا ليس كود برمجى VBA ولكن هذا يسمى

"Batch files commands " وهى طريقة تتيح لمستخدمى "Dos , Windows" عمل قائمة بالأوامر المراد تنفيذها واحد تلو الآخر...

1- قم بعمل مجلد يحتوى على البرامج المراد تشغيلها والملفات المراد نسخها والمكتبات المراد تسجيلها.

2- قم بإنشاء ملف جديد.. كليك يمين فى أى مكان واختار "New >Text Document"

3- سيظهر لك الملف هكذا "New Text Document.txt" قم بعمل إعادة تسمية له بامتداد "bat" وأى اسم له . أى هكذا "Setup.bat"

4- كليك يمين على الملف "Setup.bat" واختار "Edit"

5- قم بكتابة هذه السطور ..

CONSOLE

Accrt\ACCESSRT.MSI

Registry\UserSecurityLevel2003.reg

Copy /b /y IcqPro.skn c:\*.*

Copy /b /y "Honey.mdb" "C:\Documents and Settings\%UserName%\Desktop\"

Copy /b /y fonts\*.* %SystemRoot%\fonts\*.*

Copy /b /y ACTSKIN4.OCX %SystemRoot%\System32\*.*

regsvr32 %SystemRoot%\System32\ACTSKIN4.OCX

DIR c:\WINDOWS\FONTS

شرح السطور:

أول سطر= يقوم بعمل setup لبرنامج Access Runtime

ثانى سطر= تشغيل ملف Registery

ثالث سطر= يقوم بنسخ ملف "IcqPro.skn" على "C"

رابع سطر= يقوم بنسخ ملف "Honey.mdb" إلى سطح المكتب

خامس سطر= يقوم بنسخ الخطوط إلى مجلد "Fonts" الموجود داخل "Windows"

سادس سطر= يقوم بنسخ مكتبة "ACTSKIN4.OCX " إلى مجلد "System32" الموجود داخل "Windows"

سابع سطر= يقوم بتسجيل المكتبة "ACTSKIN4.OCX "

ثامن سطر= يعرض الخطوط الموجودة فى مجلد "Fonts" الموجود داخل "Windows"

طبعاً يمكن تطويع هذه الطريقة لتلبى احتياجاتكم للتعامل مع ملفاتكم..

شكراً،، وإلى اللقاء..

تم تعديل هذه المشاركة بواسطة hongylover في 12 مارس 2008 في 11:55

#23

أخي الغالي

hongylover

بصراحة معلومات لا احلي ولا اروع ولا اجمل من كده

ربنا يوفقك

ومنتظرين منك دائماً كثير من الاكواد الرائعة والمميزة التي تفيد هذا الصرح العظيم

بالتوفيق

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#24

كود6:

"أولاً شكراً جزيلاً أخى محمد فؤاد تركي على مروركم الكريم ولكل عضو بالمنتدى"

- سؤال؟؟

كيف تستطيع ربط قاعدة البيانات بمحرك أقراص محدد؟؟

إليك هذه الطريقة البسيطة:

.. قم بوضع هذا الكود عند فتح نموذج بدء التشغيل للقاعدة..

Private Sub Form_Open(Cancel As Integer)
Dim DP As Variant
Set DP = CurrentDb
If DP.Name = "C:\HProtectByFile.mdb" Then
MsgBox "مرحباً بك عزيزى المستخدم"
Else
MsgBox "عفواً عزيزى العميل .. سيتم الخروج من القاعدة نظراً لتغيير مسار تشغيل القاعدة.."
DoCmd.Quit
End If
End Sub

1- قم بفك ضغط القاعدة على محرك الأقراص "C" ومن ثم قم بتشغيلها

2- ثم قم بتغيير مسارها وليكن على "D" وقم بتشغيلها

3-ولاحظ الفرق....

معنى الكود:

1-إعلن عن متغير اسمه "DP"

2- حيث "DP"= القاعدة الحالية

3-إذا كان مسار القاعدة الحالية موجود على محرك الأقراص "C" يتم قتح القاعدة

4-وغير ذلك يتم إغلاق القاعدة تماماً نظراً لتغيير مسار تشغيلها.

وشكراً

وإلى اللقاء..

HProtectByFile.rar

تم تعديل هذه المشاركة بواسطة hongylover في 16 مارس 2008 في 01:15

#25

بسم الله الرحمن الرحيم

بارك الله فيك واصل ونحن معك اخي الكريم

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