اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

عد القيم فى سجل أفقيا


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

السلام عليكم

عندنا جدول بالقول

A b c d

كيف يمكن عد القيم غير الفارغة

فى سجل واحد من جميع الحقول

A1 b1 c1. ....

وهكذا

قد تصل إلى 40 حقلا

وهذا مطلوب لعد حصص مدرس فى جدول مدرسى

فى السجل

اسم المدرس فى حقل

وبعده

الحصة الأولى يوم الأحد ثم الثانية يوم الأحد ثم الثالثة وهكذا إلى الثامنة يوم الأحد ثم إلى الثامنة يوم الخميس

فطبعا هناك حصص يدخلها المعلم و حصص أخرى فارغة

أريد عد الحصص غير الفارغة للحصول على عدد حصص المدرس فى اليوم

بعبارة مختصرة

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

وشكرا

 

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

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

لكن انا ما فهمت من طلبك هذا ممكن توضيح اكثر

هل تريد شيء مثل دالة COUNTA في اكسل ؟

وهل هناك قاعدة للتجربة عليه بعد توضيح 

تم تعديل بواسطه Shivan Rekany
  • Like 1
رابط هذا التعليق
شارك

جميل جدا

أحتاج من هذا الجزء الخاص بالحقول

مع استخدام الشرط

Not isempty 

وإرجاع واحد عند تحقق الشرط

وصف عند عدم تحقق الشرط

والجمع تراكميا فى متغير

و وضع الناتج فى حقل محسوب آخر الجدول

ويتم تشغيل الكود عند فتح النموذج و إغلاقه

هذه هى الخطة

جارى التنفيذ

وشكرا لك

5a424c7d6da45_Screenshot_-----.png.be216be5632959d7cc0e82525ccb04a3.png

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

 

 

تفضل:smile:

 

هذا الجدول بحقلين اضافيين

826.Clipboard01.jpg.1a73ebe5d30805c4a64e5d8421383521.jpg

.

وهذا الكود (قد اكون قلبت قيمة Filled_Fields ، فلم افهم طلبك ، ايهم صفر وايهم 1 )

Private Sub cmd_No_Empty_Fields_Click()

    Dim Counter As Integer
    
    Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters")
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    RF = rst.Fields.Count
    
      
    'Records
    For i = 1 To RC
        
        Counter = 0


        'Fields
        For j = 0 To RF - 1
        
            'Debug.Print rst(j).Name & vbTab & rst(j)
            If rst(j).Name <> "Auto_ID" And rst(j).Name <> "Auto_Date" And _
               rst(j).Name <> "Number_of_Filled_Fields" And rst(j).Name <> "Filled_Fields" Then
                
                If Len(rst(j) & "") <> 0 Then
                    Counter = Counter + 1
                End If
                
            End If  'rst
            
        Next j
        
        rst.Edit
            rst!Number_of_Filled_Fields = Counter
            
            If Counter = 0 Then
                rst!Filled_Fields = 0
            Else
                rst!Filled_Fields = 1
            End If
            
        rst.Update
        
        rst.MoveNext
    Next i
    
    rst.Close: Set rst = Nothing
    
End Sub

 

جعفر

826.Records.mdb.zip

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

السلام عليكم 

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

Function countflds(ParamArray fldArray() As Variant)
 Dim I, curfld As Integer
 For I = 0 To UBound(fldArray)
   If Not IsNull(fldArray(I)) And fldArray(I) <> 0 Then
    curfld = curfld + 1
      End If
 Next I
 countflds = curfld
End Function

 

عدد حقول سجل بشرط.rar

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

أشكركم جميعا على حسن الرد

أولا قمت بتنفيذ كود الأخ جعفر 

وجارى تجربة و تنفيذ كود الأخ أبى خليل

و أوافيكم بالنتائج

أولا تعديل كود الأخ جعفر ليوافق ما أريد

Private Sub Form_Load()
Dim Counter As Integer
    
    Set rst = CurrentDb.OpenRecordset("Select * From tbltabs")
    rst.MoveLast: rst.MoveFirst
    rc = rst.RecordCount
    RF = rst.Fields.Count
    
      
    'Records
    For i = 1 To rc
        
        Counter = 0


        'Fields
        For j = 1 To RF - 1
        
            'Debug.Print rst(j).Name & vbTab & rst(j)
            If rst(j).Name <> "tt_ID" And rst(j).Name <> "ttab_No_ID" And _
               rst(j).Name <> "tt_tname" And rst(j).Name <> "h_c" Then
                
                If Len(rst(j) & "") <> 0 Then
                    Counter = Counter + 1
                End If
                
            End If  'rst
            
        Next j
        
        rst.Edit
            rst!h_c = Counter
            
            If Counter = 0 Then
                rst!h_c = 0
            Else
                rc = 1
            End If
            
        rst.Update
        
        rst.MoveNext
    Next i
    
    rst.Close: Set rst = Nothing
        
End Subgadwal2003.rargadwal.rar

 

Screenshot_1.png.d8dfa0823037094e078981cf4e6de794.png

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

أشكركم جميعا على حسن الرد

أولا قمت بتنفيذ كود الأخ جعفر 

وجارى تجربة و تنفيذ كود الأخ أبى خليل

و أوافيكم بالنتائج

أولا تعديل كود الأخ جعفر ليوافق ما أريد

Private Sub Form_Load()
Dim Counter As Integer
    
    Set rst = CurrentDb.OpenRecordset("Select * From tbltabs")
    rst.MoveLast: rst.MoveFirst
    rc = rst.RecordCount
    RF = rst.Fields.Count
    
      
    'Records
    For i = 1 To rc
        
        Counter = 0


        'Fields
        For j = 1 To RF - 1
        
            'Debug.Print rst(j).Name & vbTab & rst(j)
            If rst(j).Name <> "tt_ID" And rst(j).Name <> "ttab_No_ID" And _
               rst(j).Name <> "tt_tname" And rst(j).Name <> "h_c" Then
                
                If Len(rst(j) & "") <> 0 Then
                    Counter = Counter + 1
                End If
                
            End If  'rst
            
        Next j
        
        rst.Edit
            rst!h_c = Counter
            
            If Counter = 0 Then
                rst!h_c = 0
            Else
                rc = 1
            End If
            
        rst.Update
        
        rst.MoveNext
    Next i
    
    rst.Close: Set rst = Nothing
        
End Subgadwal2003.rargadwal.rar

 

 

 

 

 

 

 

Screenshot_1.png.d8dfa0823037094e078981cf4e6de794.png

 

كود الأخ أبى خليل

يصعب كتابة اسم 49 حقلا

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

ربما يصلح هذا الكود فى موضع آخر

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

17 ساعات مضت, Shivan Rekany said:

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

لكن انا ما فهمت من طلبك هذا ممكن توضيح اكثر

هل تريد شيء مثل دالة COUNTA في اكسل ؟

وهل هناك قاعدة للتجربة عليه بعد توضيح 

أرفقت قاعدة البيانات

شكرا لك

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

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