لقد قمت بعمل إجراء (sub) يقوم تلقائياً بإسناد قيمة الصف الأول في القائمة مهما كان نوع مصدر البيانات (قائمة القيم - جدول/استعلام) ومهما كان العمود المنضم
هذا الإجراء يمكن أن يفيد في البرامج من أجل وضع قيمة افتراضية للقائمة الافتراضية من ضمن عناصرها عندما تكون مجموعة العناصر تتغير ..
مثال : برنامج طبيب .. عند كتابة الوصفة واختيار نوع الدواء تكون هناك قائمة منسدلة تحتوي على الجرع يتغير محتواها تلقائياً حسب نوع الدواء ... فيلزمنا أن نحدد قيمة افتراضية لهذا الخيار
لن أطيل بالشرح أكثر وهذا هو الكود :
Sub Set2First(A As ComboBox)
Dim C As Object, P As Integer, P1 As Integer, N As Byte, R As Byte
If A.RowSourceType = "Value List" Then
P = InStr(A.RowSource, ";")
N = A.BoundColumn
If P > 0 Then
For R = 2 To N
P1 = P
P = InStr(P + 1, A.RowSource, ";")
If P = 0 Then P = Len(A.RowSource)
Next
A.Value = Mid(A.RowSource, P1 + 1, P - P1 - 1)
Else
A.Value = A.RowSource
End If
Else
Set C = CurrentDb.OpenRecordset(A.RowSource)
C.MoveFirst
A.Value = C.Fields(A.BoundColumn - 1)
End If
End Sub