تحية طيبة للجميع
هذا الكود سيقوم بالبحث داخل القاعدة الحالية ومن ثم يقوم باستبدال جميع أسماء الاستعلامات أو الجداول بأى اسم آخر تريده.. تماماً مثل عمليات البحث والاستبدال التى تتم على الحقول..
أولاً : قم بعمل قاعدة تحتوى على عدة جداول واستعلامات و نموذج جديد يتضمن الآتى:
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
ثالثاً: قم بالتجربة بنفسك وأطلعنى على النتيجة
تقبلوا فائق تحياتى