اذهب الي المحتوي
أوفيسنا

ارجو المساعدة في تغيير بيانات حقل في جدول


sayed_hu95

الردود الموصى بها

سؤال الى اهل الخبرة

عندي 100 جدول والمشكلة اني احتاج الى تغيير نوع البيانات في احد الحقول من نص الى رقم

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

رابط هذا التعليق
شارك

طلبك يمكن تحقيقه ولكن :

التغيير من نص الى رقم  يختلف عن العكس

يجب ان تأخذ في الحسبان ان الحقل في جميع الجداول لا يحتوي على قيمة نصية مثل الحروف والرموز

والا سيظهر معك اخطاء  ولن يتم تنفيذ الكود بصورة صحيحة

رابط هذا التعليق
شارك

انا عندي كودين اثنين  جاهزين بطريقتين

وكنت انتظر الرد من السائل  

لانه  لا بد ان تكون الحقول خالية او انها تحتوي على ارقام فقط حتى يعمل الكود بدون مشاكل

 

 

رابط هذا التعليق
شارك

حبا وكرامة تفضلوا :

على اعتبار اسم الحقل في جميع الجداول =  id

هذا الاول

 Dim dbs As Database
  Dim Table As TableDef
  'On Error Resume Next
  Set dbs = CurrentDb
  DoCmd.SetWarnings False
      For Each Table In dbs.TableDefs
      If Not Table.Name Like "MSys*" Then
        DoCmd.RunSQL "ALTER TABLE " & Table.Name & " ALTER COLUMN id INTEGER"
       End If
    Next
  DoCmd.SetWarnings True
  Set dbs = Nothing
    MsgBox "تم"

وهذا الثاني

Dim rs As Recordset
Dim strSQL As String
Dim strTable As String
 strSQL = "SELECT MSysObjects.Name " & vbCrLf & _
"FROM MSysObjects " & vbCrLf & _
"WHERE (((MSysObjects.Type)=1) AND ((Left([name],4))<>""msys"")) " & vbCrLf & _
"ORDER BY MSysObjects.Name;"
Set rs = CurrentDb.OpenRecordset(strSQL)
DoCmd.SetWarnings False
  Do Until rs.EOF
strTable = rs!Name
DoCmd.RunSQL "ALTER TABLE " & strTable & " ALTER COLUMN id INTEGER"
rs.MoveNext
Loop
DoCmd.SetWarnings True
Set rs = Nothing
  MsgBox "تم"

ولكنك قلت انك شغال على المطلوب  وكنت مخلص يعني لاهنت نريد الحل الثالث  حتى لو فيه توارد خواطر  فلن نعدم فائدة

 

 

  • Like 4
رابط هذا التعليق
شارك

السلام عليكم أخوي ابوخليل :rol:

 

كنت اتمنى اخلص "البرنامج" البارحة ، بس للأسف ما قدرت :blink:

الكود اللي وضعته انت ، هو لُب الموضوع ، 

بينما انا شغال على برنامج خارجي ، يعطيك اختيار الجداول اللي تريد تغير الحقل فيها ، فهذا يأخذ شوية وقت زيادة :rol:

السبب اني اتجهت الى هذه الطريقة هي اني اعتقد ان استخدام برنامج خارجي لن يُربك المستخدم وبرنامجه (لا تنسى اني ما اتكلم عن كود فقط ، وانما نموذج ووحدات نمطية) :rol:

 

يالله ، ان شاء الله اخلص وارفقه ، لزيادة المعلومة :rol:

 

جعفر

  • Like 2
رابط هذا التعليق
شارك

السلام عليكم :rol:

 

هذه طريقة تغيير نوع البيانات في الجدول/الجداول ، لحقل بنفس الاسم في جميع الجداول ، ولكن بإستعمال برنامج خارجي :rol:

 

نفترض اننا نريد ان نغير في قاعدة البيانات التالية:

403.Clipboard01.jpg

 

والان الى برنامجنا:

403.Clipboard02.jpg

1. اختار قاعدة البيانات المطلوبة ،

2. ستظهر لك قائمة اسماء الجداول في قاعدة البيانات المختارة (لاحظ ان الجدول المرتبط لا يظهر لنا) ،

3. يمكن تصفية اسماء الجداول عن طريق كتابة الاحرف الاولى منه ، تسهيلا لعملية اختيار الجداول ،

4. عند النقر على اسم الجدول ، تظهر لنا اسماء الحقول فيه ،

5. وعند النقر على اسم الحقل ، يظهر لنا نوع بيانات الحقل ،

6. وهنا نختار نوع البيانات الذي نريد تحويل الحقل اليه ،

7. هنا 3 طرق لإختيار الجداول والتي نريد تغيير نوع بيانات حقل معين فيها:

  • التصفية باختيار اول حرف/حروف الجدول/الجداول ، من الحقل رقم 3 ،
  • يمكن اختيار جدول مباشرة من الحقل 2 ، ثم الضغط على زر الكيبورد Ctrl ، والنقر على بقية الجداول ،
  • استخدام الحقل 7 ، حيث يختار جميع الجداول او لا يختارها (ونستطيع استعماله مع تصفية الحقل 3 ،

8. هذا الزر يقوم بنصف العمل ، بتكوين حقل مؤقت في جميع الجداول المختارة بنوع البيانات المطلوبة ، ونسخ البيانات اليه ، ولا يحذف الحقل الاصل من الجدول (وقد عملت هذا بناء على ملاحظة أخي ابوخليل ، حيث ان بيانات الحقل قد لا تكون مطابقة ، فبدل ان تُحذف هذه البيانات ، يمكن مقارنتها بعد هذه العملية) ،

9. يقوم بتغيير نوع البيانات في جميع الجداول المختارة (وهو ما يقوم به برنامج أخي ابوخليل ، وبدون هذه الزركشة والزخرفة :rol:)

 

 

جعفر

 

403.Change_DataType.mdb.zip

  • Like 3
رابط هذا التعليق
شارك

يا سلام عليك  صح  الآن فهمت

يعني لو اني كتبت الكود داخل برنامجي ثم عدلت خلاص تنتهي مهمته ولو احتجته مرة ثانية في برنامج آخر  لازم اكتبه مرة خرى

 فانت عملت هذا لنا  مساند ومساعد عند الحاجة

فحسنا فعلت لاخوانك جزاك الله خيرا

وشكرا لتعبك وجهدك

  • Like 3
رابط هذا التعليق
شارك

13 ساعات مضت, ابوخليل said:

يا سلام عليك

وتقول:

، يعني بعدك مصدقك ان كل العمانية سِحّار :cool:

يكفينا منهم واحد :wink2:

سلمت لنا وسلم لنا أبوخليل (وكل الأحبة جميعا) 

رابط هذا التعليق
شارك

15 ساعات مضت, ابوخليل said:

يا سلام عليك  صح  الآن فهمت

كلمات شكر افتخر بها من اخ عزيز :signthankspin:

في الواقع اخذت راحتي في البرنامج ، وجعلته ارضية جاهزة لأشياء اخرى نستطيع ان نقوم بها لبرامج اخرى "عند بُعد" :rol:

وجعلته بصيغة mdb لتعم الفائدة ، والمكتبات جعلتها تعمل على الاكسس 32بت و 64بت :rol:

 

وعند الانتهاء من البرنامج ، خطر في بالي ان الزر رقم 8 يجب ان نتوسع به:

  • نغير مسمى الزر الى "تجربة" ،
  • نجعله يأخذ نسخة من قاعدة البيانات المطلوب العمل عليها ،
  • نجعل الكود يتم العمل بالكامل على النسخة الاحتياط ، ثم يعطي تقرير عن قيم الحقول المختلفة قبل وبعد تغيير نوع البيانات فقط للجداول اللي فيها مشاكل في تحويل البيانات.

 

واللي يريد يضيف ويعدل ، اهلا وسهلا به :rol:

 

2 ساعات مضت, أبو عبدالله الحلوانى said:

سلمت لنا وسلم لنا أبوخليل (وكل الأحبة جميعا) 

حياك الله اخوي أبوعبدالله ، ياللي مدلعني :wink2:

 

جعفر

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information