|
автор: Аноним (17.11.2006 в 21:17) |
|
| Пожалуйста, помогите разобраться. Я создала функцию, которая по имеющимся в таблице полям Фамилия, Имя, Отчество, Инициалы формирует полное ФИО. Делаю так:
Public Function ФИО(Код As Integer)
Dim StrSQL As String
Dim MyRst As DAO.Recordset
StrSQL = "SELECT Фамилия, Имя, Отчество, Инициалы FROM Люди WHERE Код = " + CStr(Код)
Set MyRst = CurrentDb.OpenRecordset(StrSQL, dbOpenDynaset)
ФИО = MyRst![Фамилия]
If IsNull(MyRst![Имя]) Then
If Not IsNull(MyRst![Инициалы]) Then
ФИО = ФИО + " " + MyRst![Инициалы]
End If
Else
ФИО = ФИО + " " + MyRst![Имя]
If Not IsNull(MyRst![Отчество]) Then
ФИО = ФИО + " " + MyRst![Отчество]
End If
End If
End Function
При обработке относительно большого числа записей (200-300) возникает заметная задержка. Вариант Фамилия+пробел+Имя+пробел+Отчество работает очень быстро, но не обрабатывает записи, в которых не хватает данных.
Можно ли как-то оптимизировать эту обработку? Спасибо. | |
|
| |
|
|
|
| а что Вы с этой сформированной таблице делаете?
может все это заменить на запрос на обновление?
ну или хотя бы заменить всю эту функцию на
select [Фамилия] & " " + iif(isnull([имя]),[Инициалы],[имя] & " " + [Отчество]) as [ФИО]
FROM Люди WHERE Код = " + CStr(Код)
но если вы что-то обновляете какое-то поле, то лучше все сделать запросом на обновление.(сделать его их моего запроса на выборку)
ЗЫ. 300 записей для ACCESS это даже не мало, это ничто.. | |
|
| |
|
|
|
| ёпрст! osmor, плиз скажи им чтоб [cоdе][/cоdе] юзали! Ну не читается код в таком форматировании. Он простой как семь копеек, а мозг напрягается на целый рубль, а сегодня понедельник. Ну не надо так
Хотяб так:
Public Function ФИО(Код As Integer)
Dim StrSQL As String
Dim MyRst As DAO.Recordset
StrSQL = "SELECT Фамилия, Имя, Отчество, Инициалы FROM Люди WHERE Код = " + CStr(Код)
Set MyRst = CurrentDb.OpenRecordset(StrSQL, dbOpenDynaset)
ФИО = MyRst![Фамилия]
If IsNull(MyRst![Имя]) Then
If Not IsNull(MyRst![Инициалы]) Then
ФИО = ФИО + " " + MyRst![Инициалы]
End If
Else
ФИО = ФИО + " " + MyRst![Имя]
If Not IsNull(MyRst![Отчество]) Then
ФИО = ФИО + " " + MyRst![Отчество]
End If
End If
End Function
|
| |
|
| |
|
|
|
|
osmor, плиз скажи им чтоб [cоdе][/cоdе] юзали
|
Ну. ГОВОРЮ!!!!
"ВСЕМ ПОЛЬЗОВАТЬСЯ [cоdе][/cоdе] при вставке кода!!! Кто не будет пользоваться... тому... того... ну в общем пользуйтесь плз." | |
|
| |
|
|
|
| Спасибо
атоблинкинуттакуюабрукадабру и... плиииз... пипл... кто нить... просмотрите ааа в чем тама собака, ну или где там раки
а пипл устал такие коды расшифровывать у пипла своих шифров тьма | |
|
| |