استبدل كود الموديول بالكود التالى
Public Function Horizontal(tabelle As String, Feld1 As String, Feld2 As String, valFeld1 As Variant) As String
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Dim fieldType As Integer
Dim sqlWhere As String
Dim first As Boolean
' تعيين قاعدة البيانات الحالية
Set DB = CurrentDb
' استرجاع نوع الحقل Feld1
fieldType = DB.TableDefs(tabelle).Fields(Feld1).Type
' تنسيق القيمة بناءً على نوع الحقل
Select Case fieldType
Case dbText, dbMemo, dbChar
' النصوص: وضع القيمة بين علامات اقتباس مفردة مع معالجة علامات الاقتباس الداخلية
sqlWhere = "[" & Feld1 & "]='" & Replace(valFeld1, "'", "''") & "'"
Case dbDate, dbTime, dbTimeStamp
' التواريخ: وضع القيمة بين علامات # مع تنسيق التاريخ
sqlWhere = "[" & Feld1 & "]=#" & Format(valFeld1, "yyyy-mm-dd hh:nn:ss") & "#"
Case dbInteger, dbLong, dbSingle, dbDouble, dbCurrency, dbDecimal
' الأرقام: إدراج القيمة مباشرة
sqlWhere = "[" & Feld1 & "]=" & valFeld1
Case Else
' معالجة الأنواع غير المدعومة
MsgBox "نوع البيانات غير مدعوم للحقل: " & Feld1, vbExclamation
Exit Function
End Select
' إنشاء وتنفيذ استعلام SQL
Set rs = DB.OpenRecordset("SELECT DISTINCT [" & Feld2 & "] FROM [" & tabelle & "] WHERE " & sqlWhere & " ORDER BY [" & Feld2 & "] DESC")
' تهيئة متغير للسجل الأول
first = True
' معالجة السجلات المسترجعة
Do While Not rs.EOF
If first Then
Horizontal = rs(Feld2) ' القيمة الأولى
first = False
Else
Horizontal = Horizontal & vbCrLf & rs(Feld2) ' إضافة القيم التالية مع فاصل سطر
End If
rs.MoveNext
Loop
' تحرير الموارد
rs.Close
Set rs = Nothing
Set DB = Nothing
End Function