[Ms-Access] الجمع بين الصفوف / صفوف متسلسلة


Answers

أعتقد نز هو ما كنت بعد، بناء الجملة Nz(variant, [if null value]) . وفيما يلي رابط التوثيق: نز فونكتيون

---Person--- 
John
Steve
Richard

DECLARE @PersonList nvarchar(1024)
SELECT @PersonList = Nz(@PersonList + ',','') + Person
FROM PersonTable

PRINT @PersonList
Question

أبحث عن أسيس 2007 يعادل دالة كواليس سكل سيرفر.

في سكل سيرفر يمكن أن تفعل شيئا مثل:

شخص

John
Steve
Richard

SQL

DECLARE @PersonList nvarchar(1024)
SELECT @PersonList = COALESCE(@PersonList + ',','') + Person
FROM PersonTable

PRINT @PersonList

التي تنتج: جون، ستيف، ريتشارد

أريد أن أفعل الشيء نفسه ولكن في أسيس 2007.

هل يعرف أحد كيفية الجمع بين صفوف مثل هذا في أسيس 2007؟




للجمع بين الصفوف في أسيس، ستحتاج على الأرجح إلى شفرة تبدو مشابهة لما يلي:

Public Function Coalesce(pstrTableName As String, pstrFieldName As String)

Dim rst As DAO.Recordset
Dim str As String

    Set rst = CurrentDb.OpenRecordset(pstrTableName)
    Do While rst.EOF = False
        If Len(str) = 0 Then
            str = rst(pstrFieldName)
        Else
            str = str & "," & rst(pstrFieldName)
        End If
        rst.MoveNext
    Loop

    Coalesce = str

End Function

سوف تحتاج إلى إضافة رمز معالجة الأخطاء وتنظيف مجموعة السجلات الخاصة بك، وهذا سوف يتغير قليلا إذا كنت تستخدم أدو بدلا من داو، ولكن الفكرة العامة هي نفسها.