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

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

قام بنشر (معدل)

السلام عليكم جميعا

أرغب في المثال المرفق بإعادة ترقيم المواد حسب المجموعات بأي وقت أريد وغالبا بعد حذف مادة ما

Database1.rar

انا راجعت المواضيع المتعلقة ولم أجد مرادي

 

يرجى الإفادة يا إخواني عن طريق كود و استعلام فضلا لا امرا

Database1.rar

تم تعديل بواسطه syrian_a
قام بنشر (معدل)
3 ساعات مضت, كرار صبري _ أبو جنى said:

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

ترقيم  الذي تريده في اي حقل و اي جدول 

 

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

في جدول Items حقل Item_No

 

طبعا حسب CategoryID

تم تعديل بواسطه syrian_a
قام بنشر

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

 

الاستعلام في وضع التصميم:

ومهم جدا لنجاح هذه العملية ان يكون الاستعلام 1. بفرز مواد المجموعات ، ثم 2. بفرز الترقيم التلقائي مثلا ، وعمل الترقيم تقوم به الوحدة النمطية RowCounter :

361.Clipboard01.jpg

.

والنتيجة:

361.Clipboard02.jpg

.

ولتحديث الجدول Items ، يجب ان يكون لدينا الاستعلام اعلاه ، ثم يقوم الاستعلام qry_2_Update بتحديث الجدول على اساسه:rol:

 

وهذه هي الوحدة النمطية:

Option Compare Database
Option Explicit
       
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

Public Function Correct_Last_Sequence()

    Dim rst As DAO.Recordset
    Dim Last_Seq As Integer
    
    Set rst = CurrentDb.OpenRecordset("Select * From 1 Order By Auto_ID Desc")
    
    rst.MoveNext
    
    Last_Seq = rst!M
    
    rst.MovePrevious
    
    rst.Edit
    rst!M = Last_Seq + 1
    rst.Update
    
    rst.Close: Set rst = Nothing
    
End Function



 

جعفر

361.Database1.mdb.zip

  • Like 4
قام بنشر

حياك الله :rol:

 

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

 

جعفر

  • Like 1
قام بنشر (معدل)

طيب للإفادة ممكن تجعل هذه الطرق مطبقة في نماذج  لتوضيح معناها و فائدتها 

تم تعديل بواسطه syrian_a
قام بنشر

تفضل :rol:

 

نفس موضوعك ، بالمجموعات: http://www.officena.net/ib/topic/60480-طباعة-اصناف-محددة-معينة-بالنموذج-الفرعي-وليس-كل-الاصناف/

والنتيجة (لاحظ لون الرقم المسلسل يتماشى مع نوع الطبق):

52.Clipboard08.jpg

.

وهنا التسلسل للسجلات: http://www.officena.net/ib/topic/63356-ترقيم-سجل-بعد-البحث/?do=findComment&comment=412591

107.Clipboard01.jpg

 

 

جعفر

  • Like 2
قام بنشر

جرب ان تضع التعبير التالي كعمود جديد بالاستعلام query1

Expr1: DCount("*","items","categoryid=" & [CategoryID] & " and itemid<=" & [ItemID])

بالتوفيق

  • Like 4

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