وعليكم السلام ورحمة الله وبركاته
أرجو أن تفيدك هذة الطريقة
ولكن راعي تغيير اسم الجدول
YourTableName واسم الحقل barcodeField
لجلب أعلى قيمة باركود باستخدام كود يتعامل مع حقل نوعية نص (Text) ووجود نموذج محدد للباركود، سوف تحتاج إلى استخدام دالة للبحث عن الباركود الذي يبدأ بـ `1001` ثم الحصول على القيمة الأعلى التي تحتوي على هذا الجزء.
إليك مثال على كيفية كتابة الدالة:
كود :
Public Function GetHighestBarcode(ByVal code As String) As String
Dim STR As String = "SELECT MAX(barcodeField) FROM YourTableName WHERE barcodeField LIKE '" & code & "-%'"
Dim adp As New SQLiteDataAdapter(STR, con)
Dim Ds As New DataSet
adp.Fill(Ds)
If Ds.Tables(0).Rows.Count > 0 Then
Dim highestBarcode As Object = Ds.Tables(0).Rows(0)(0)
If highestBarcode IsNot DBNull.Value Then
Return highestBarcode.ToString()
End If
End If
Return String.Empty 'إذا لم يكن هناك باركود متاح
End Function
### كيف يعمل الكود:
1. **الدالة**: `GetHighestBarcode` تأخذ كود (مثل `1001`) كوسيط وتعيد الباركود الأعلى كنص.
2. **الاستعلام**: يتم بناء استعلام SQL باستخدام `LIKE` للبحث عن الباركودات التي تبدأ بالرقم `1001` متبوعًا بشرطة ونقطة (مثل `1001-1`، `1001-2`).
3. **استرجاع القيمة الأعلى**: يستخدم استعلام `MAX` للحصول على أعلى قيمة للباركود المتطابقة.
4. **تعبئة بيانات الجدول**: مثل الكود السابق، يتم استخدام `DataAdapter` و`DataSet` لتعبئة النتائج.
5. **التحقق من النتائج**: إذا كان هناك نتائج، يتم إرجاع القيمة العليا، وإلا يتم إرجاع نص فارغ.
### الاستخدام:
عند الحاجة لاسترجاع أعلى باركود بناءً على كود معين، يمكنك ببساطة استدعاء الدالة:
كود :
Dim highestBarcode As String = GetHighestBarcode("1001")
بهذه الطريقة، ستتمكن من الحصول على آخر باركود (مثل `1001-3`) عند إدخال `1001`.