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

طلب دالة معرفة رقم الصف في اكسس


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

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

تم تعديل بواسطه أبو يحيى الجبلاوي
رابط هذا التعليق
شارك

في ١٤‏/١١‏/٢٠١٨ at 17:33, jjafferr said:

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

 

لو تشرح المطلوب بمثال ، فقد نستطيع مساعدتك بشكل افضل:smile:

 

جعفر

السلام عليكم اخي جعفر 
على الاكسيل توجد هذه الدالة اسمها Row  تعطيك رقم الصف كما هو موضح بالصورة التالية :

659552319_1.JPG.c7c43b41010adf26a44aeea70746670e.JPG

 

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

تم تعديل بواسطه أبو يحيى الجبلاوي
رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

نعم يوجد ، واسمه Recordset Absoluteposition ، وهذا شرح له من مايكروسوفت:

https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/recordset-absoluteposition-property-dao

 

ولكني لا اعتقد بأنك تبحث عن هذا !!

اخبرنا لماذا كنت تريد ان تستعمل هذه الداله ، وماذا تريد استخراج من بياناتك؟

 

جعفر

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

9 دقائق مضت, jjafferr said:

وعليكم السلام 🙂

 

نعم يوجد ، واسمه Recordset Absoluteposition ، وهذا شرح له من مايكروسوفت:

https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/recordset-absoluteposition-property-dao

 

ولكني لا اعتقد بأنك تبحث عن هذا !!

اخبرنا لماذا كنت تريد ان تستعمل هذه الداله ، وماذا تريد استخراج من بياناتك؟

 

جعفر

حياك الله اخي جعفر سأجربها ان شاء الله 

 

انا احتاجها بوضعها بدالة iif الشرطية في حال كان الصف الاول يكتب اسم العملة الرئيسية والصف الثانية العملة رقم ٢ وهكذا فضمن الدالة احتاج لرقم الصف

جزيت خيرا اخي الفاضل

 

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

لازلت اعتقد بانه هناك طريقة اسهل للذي تريد الوصول اليه ،

لذا لوسمحت ارفق الموجود من بياناتك ، ثم اشرح لنا بالاكسل (من واقع بياناتك) النتيجة اللي تريد توصل لها 🙂

 

جعفر

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

20 دقائق مضت, jjafferr said:

لازلت اعتقد بانه هناك طريقة اسهل للذي تريد الوصول اليه ،

لذا لوسمحت ارفق الموجود من بياناتك ، ثم اشرح لنا بالاكسل (من واقع بياناتك) النتيجة اللي تريد توصل لها 🙂

 

جعفر

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

1044081153_2.JPG.8453327710de9e4d5eebb6bc27b53eea.JPG

 

 

test 2.accdb

 

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

اتمنى منك اخي جعفر تطبقلي الحل على المثال سواءاً بالكود او بكود آخر وجزاك الله خيرا

تم تعديل بواسطه أبو يحيى الجبلاوي
رابط هذا التعليق
شارك

تفضل 🙂

 

انا لعبت في الجدول:

  1. اضفت سجل ثم حذفته ، وبهذه الطريقة فقدنا التسلسل رقم 4 من حقل الرقم التلقائي ID ،
  2. ثم اضفت سجل جديد لعملة جديدة وهي الريال العماني ،
  3. ثم اضفت حقل Seq وهو لإدخال التسلسل اليدوي ، واردت التسلسل يكون هكذا :

988.Clipboard01.jpg.5f6d071b8464d221ed9f742b41bec5fc.jpg

.

على هذا الاساس ، عملت استعلامين:

الاول ليعطينا التسلسل حسب فرز الحقل ID ،

والثاني يعطينا التسلسل حسب فرز الحقل Seq :

988.Clipboard02.jpg.b094bb4b23ddb62adc3399b5991d6447.jpg

.

والنتيجة:

988.Clipboard03.jpg.b048587e95ea01b69d06d585790e2a0b.jpg

.

والوحدة النمطية اللي تقوم بإرجاع البيانات مكتوبة هي :

Public Function Row_Number(N) As String

    'N = Number sent from the Query
    
    If Len(N & "") = 0 Then
        Row_Number = ""
        
    ElseIf N = 1 Then
        Row_Number = "العملة الرئيسية"
    
    Else
        Row_Number = "العملة رقم " & N
    
    End If
    
End Function

.

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

Curr: IIf(Len([ID] & "")=0,"",IIf([ID]=1,"العملة الرئيسية","العملة رقم " & [ID]))

.

 

طيب لو اردت التسلسل (الفرز) يكون بإسم العملة ، فالطريقة الاولى لفرز الحقل ID لا ينفع ، ولم ارد استعمال الحقل Seq !!

 

فالطريقة تكون ، بأن نعمل تسلسل للإستعلام حسب حقل الفرز ،

وهناك عدة طرق لعمل هذا التسلسل ، ولكني أفضل هذه الوحدة النمطية:

       
Public Function RowCounter( _
  ByVal strKey As String, _
  ByVal booReset As Boolean, _
  Optional ByVal strGroupKey As String) _
  As Long
  
' Builds consecutive RowIDs in select, append or create query
' with the possibility of automatic reset.
' Optionally a grouping key can be passed to reset the row count
' for every group key.
'
' Usage (typical select query):
'   SELECT RowCounter(CStr([ID]),False) AS RowID, *
'   FROM tblSomeTable
'   WHERE (RowCounter(CStr([ID]),False) <> RowCounter("",True));
'
' Usage (with group key):
'   SELECT RowCounter(CStr([ID]),False,CStr([GroupID])) AS RowID, *
'   FROM tblSomeTable
'   WHERE (RowCounter(CStr([ID]),False) <> RowCounter("",True));
'
' The Where statement resets the counter when the query is run
' and is needed for browsing a select query.
'
' Usage (typical append query, manual reset):
' 1. Reset counter manually:
'   Call RowCounter(vbNullString, False)
' 2. Run query:
'   INSERT INTO tblTemp ( RowID )
'   SELECT RowCounter(CStr([ID]),False) AS RowID, *
'   FROM tblSomeTable;
'
' Usage (typical append query, automatic reset):
'   INSERT INTO tblTemp ( RowID )
'   SELECT RowCounter(CStr([ID]),False) AS RowID, *
'   FROM tblSomeTable
'   WHERE (RowCounter("",True)=0);
'
' 2002-04-13. Cactus Data ApS. CPH
' 2002-09-09. Str() sometimes fails. Replaced with CStr().
' 2005-10-21. Str(col.Count + 1) reduced to col.Count + 1.
' 2008-02-27. Optional group parameter added.
' 2010-08-04. Corrected that group key missed first row in group.

  Static col      As New Collection
  Static strGroup As String
  
  On Error GoTo Err_RowCounter
  
  If booReset = True Then
    Set col = Nothing
  ElseIf strGroup <> strGroupKey Then
    Set col = Nothing
    strGroup = strGroupKey
    col.Add 1, strKey
  Else
    col.Add col.Count + 1, strKey
  End If
  
  RowCounter = col(strKey)
  
Exit_RowCounter:
  Exit Function
  
Err_RowCounter:
  Select Case Err
    Case 457
      ' Key is present.
      Resume Next
    Case Else
      ' Some other error.
      Resume Exit_RowCounter
  End Select

End Function


Public Function Reset_RowCounter()

    Call RowCounter(vbNullString, False)
End Function

.

ثم ننادي هذه الوحدة النمطية من الاستعلام ، حتى تعطينا التسلسل ،

ثم نستعمل الوحدة النمطية السابقة لكتاية المطلوب:

988.Clipboard04.jpg.5411f29c43d82ba96cbb67bfc581e673.jpg

.

 

ملاحظة:

الحقل الذي يكون محسوب ، ويتغير بإستمرار ، فإننا لا نحفظ قيمته في الجدول ،

لهذا السبب ، لم نستعمل الحقل N  ، ولم نحفظ قيمتها في الجدول 🙂

 

جعفر

988.test 2.accdb.zip

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

جزاك الله خيرا وبارك الله فيك انا اريد كتابة بغض النظر عن ال id المهم انه السطر الاول هو العملة الرئيسية والباقي يكون العملة رقم 2 العملة رقم 3 وهكذا حتى لو كان id 100 وهو سطر 3 تكون العملة رقم 3

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

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

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