Вот работающая фукния:
Код | Public Function MC_RecsInStrExt(ByVal stSQL As String _ , ByVal stFieldName As String _ , Optional ByVal SimvRazd As String = ", ") As String ' Скоков С.А. ' формирут строку из записей таблицы, разделяя их разделителями (запятыми) ' stSQL - запрос (может быть и именем таблицы или сохраненного запроса) ' stFieldName - имя поле, из которого брать данные ' SimvRazd - символ разделитель значений On Error GoTo Err_ Dim stRet As String Dim rstTable As Recordset Set rstTable = CurrentDb.OpenRecordset(stSQL, dbOpenDynaset) ' если есть записи то If rstTable.RecordCount > 0 Then ' это потому что эти значения разделяются запятыми и ставятся перед присваиванием _ знач-я из таблицы (см. цикл ниже), _ а перед первым значением запятую ставить не нужно stRet = Nz(rstTable(stFieldName)) rstTable.MoveNext End If Do While Not rstTable.EOF stRet = stRet & SimvRazd & Nz(rstTable(stFieldName)) rstTable.MoveNext Loop rstTable.Close MC_RecsInStrExt = stRet
Exit_: Exit Function
Err_: 'MsgBox Err.Description Resume Exit_ End Function
|
Пример использования:
Код | '-- выводит через запятую технику для клиента с кодом 123 MsgBox MC_RecsInStrExt("SELECT T_TEHNIKA FROM b_klient_tehnika WHERE K_KLIENT = " & 123, "T_TEHNIKA")
|
|