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

مثال لإعادة تسمية كافة الاستعلامات أو الجداول برمجياً

بدأه هانى عوض في 5 فبراير 2009 · 1 رد · 532 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تحية طيبة للجميع

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

أولاً : قم بعمل قاعدة تحتوى على عدة جداول واستعلامات و نموذج جديد يتضمن الآتى:

1- زر أمر باسم cmdRenameTable

2- زر أمر باسم cmdRenameQuery

3- مربع نص باسم TxtName

4- مربع نص باسم TxtReName

ثانياً: ضع الكود التالى فى الوحدة النمطية للنموذج:

Public Sub RenameAllQueries(strToFind As String, strToReplace)
	On Error GoTo ErrHandler

	Dim dbs As Database
	Dim qdf As QueryDef

	Set dbs = CurrentDb
	For Each qdf In dbs.QueryDefs
		Dim qdfNewName As String

		qdfNewName = Replace(qdf.Name, strToFind, strToReplace)

		If qdfNewName <> qdf.Name Then
			DoCmd.Rename qdfNewName, acQuery, qdf.Name
		End If

NextQdf:
	Next

Cleanexit:
	Exit Sub

ErrHandler:
	MsgBox Err.Number & " - " & Err.Description, vbOKOnly
	Resume NextQdf
	GoTo Cleanexit
End Sub

Public Sub RenameAllTables(strToFind As String, strToReplace)
	On Error GoTo ErrHandler

	Dim dbs As Database
	Dim tdf As TableDef

	Set dbs = CurrentDb
	For Each tdf In dbs.TableDefs
		Dim tdfNewName As String

		tdfNewName = Replace(tdf.Name, strToFind, strToReplace)

		If tdfNewName <> tdf.Name Then
			DoCmd.Rename tdfNewName, acTable, tdf.Name
		End If

NextTdf:
	Next

Cleanexit:
	Exit Sub

ErrHandler:
	MsgBox Err.Number & " - " & Err.Description, vbOKOnly
	Resume NextTdf
	GoTo Cleanexit
End Sub

ثالثاً: فى حدث عند النقر للزرين ضع الكود التالى

Private Sub cmdRenameTable_Click()
	Dim T As String
	Dim TRe As String

	T = TxtName
	TRe = TxtRename

	Call RenameAllTables(T, TRe)

End Sub

Private Sub cmdRenameQuery_Click()
	Dim Q As String
	Dim QRe As String

	Q = TxtName
	QRe = TxtRename

	Call RenameAllQueries(Q, QRe)

End Sub

ثالثاً: قم بالتجربة بنفسك وأطلعنى على النتيجة

تقبلوا فائق تحياتى

تم تعديل هذه المشاركة بواسطة هانى عوض في 5 فبراير 2009 في 14:37

#2

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

بارك الله فيك اخي هاني

ولكن لي سؤال

عند استعمال هذه الاستعلامات او الجداول في وحدة نمطية ثم تغيير اسم الاستعلام او الجدول فلن يتم تنفيذ الكود البرمجي

فهل يمكن اضافة شئ للكود ليقوم بتغيير الاسم في الوحدات النمطية ايضا ؟؟؟؟؟؟؟؟؟؟؟

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…