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

التحكم بخلية في تقرير برمجيا


mourad2012

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

السلام عليكم ورحمة الله وبركاته

كيف حال الجميع في هذا الصرح الرائع

اتمنى من الله ان تكونوا في احسن حال وراحة بال

اخوتي:

قمت بعمل كود برمجي يقوم بتوزيع الحقول برمجياً لبناء جدول علامات مدرسية ولكن واجهتني معضلة وحاولت وحاولت لكن دون فائدة :wallbash:

واتمنى من الله ان نتمكن من تجاوزها،،، :signthankspin:

الكود هو:

Option Compare Database
Const Insh = 1440

Private Sub Report_Open(Cancel As Integer)
Dim Mynum
Dim Counter
Dim wd
'==================== التوسعة بالانش
wd = 0.3 * Insh
Dim i
'=========================== هنا يقوم الكود بحساب العرض لجميع الحقول
For i = 1 To 30
Me("a" & i).Width = wd
Next i

'Me.a2.Width = 1500

'===================== نقوم بعمل تكرااااار لتزيع الحقول لتتماشى مع بعضها
Counter = 1
    Mynum = 30
    
Do While Mynum > 1

        Mynum = Mynum - 1
        Counter = Counter + 1
   
For i = 1 To 29
Me("a" & i).Left = Me("a" & i + 1).Left + wd
Next i
    
    Loop


End Sub

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

المثال المرفق يوضح المشكلة

احترااامي

 

TestDBR.rar

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

وعليكم السلام:smile:

 

نصيحتي ان تبذل الوقت وتعمل حقول التقرير بالطريقة العادية ، لأنها ستوفر عليك الوقت لاحقا (مثل ما لاحظت ، طلبك صعب التعامل معه برمجيا ، ولكنه سهل بالطريقة العادية):smile:

 

ولكن ، اليك الجواب حسب طريقتك:

590.Clipboard01.jpg.55063c41e4e1894f0b3a9c9742dcd946.jpg

.

ليصبح الكود:

Option Compare Database
Const Insh = 1440

Private Sub Report_Open(Cancel As Integer)
    Dim i, wd, iLeft, Field_No

    wd = 0.3 * Insh

    iLeft = 0
    For i = 1 To 30
        
        Field_No = 31 - i
        
        
        If Field_No = 2 Then
            'الحقل رقم 2 اعمل عرضه 4 اضعاف
            Me("a" & Field_No).Width = wd * 4
            Me("a" & Field_No).Left = iLeft
            
        Else
            'بقية الحقول عرضها متساوي
            Me("a" & Field_No).Width = wd
            Me("a" & Field_No).Left = iLeft
            
        End If
        
        iLeft = Me("a" & Field_No).Left + Me("a" & Field_No).Width
    Next i

End Sub

 

جعفر

590.TestDBR.accdb.zip

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

اخي العزيز جعفر،،،

ادامك الله ورعاك ،،، وجعل عملك في ميزان حسناتك

احسنت وابدعت كما العادة ،،، عهدتك معطاءً وستبقى

لك مني كل الشكر والتقدير

هذا ما طلبته بالضبط

وبخصوص التقارير العادية :) حاجة في عملي فرضت علي مثل هذا التقرير.

مرة اخرى

احترااااااااااامي لشخصك الطيب

وتحياتي لجميع من في هذا الصرح الرائع

 

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information