Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите написать фуккцию! / 12 сообщений из 12, страница 1 из 1
20.01.2005, 15:38:23
    #32875097
vladimir22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
в таблице tab_1 есть поля n1, n2, n3, n4
используем функцию в sql запросе temp(text1,n1)&temp(text2,n2)&...
логика: если n1 - не пустой, то выводим text1&n1
если пустой, то ничего не выводим.
-----------------------
Function temp(st As String, st1 As String)
temp = st & " " & st1
If Len(st1) = 0 Then temp = " "
End Function
-----------------------
когда значение в столбце отсутствует выводит #ошибка,
как исправить?
...
Рейтинг: 0 / 0
20.01.2005, 15:44:26
    #32875130
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
Function temp(st As variant, st1 As variant)
st=Nz(st,"")
st1=NZ(st1,"")
temp = st & " " & st1
If Len(st1) = 0 Then temp = " "
End Function

Null низя засовывать в стринг, ессно возникает ошибка
...
Рейтинг: 0 / 0
20.01.2005, 15:47:22
    #32875146
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
заменить нах вызов temp(text1,n1) на
Код: plaintext
iif(isnull(n1),Text1,n1)

P.S.
если хочется писать свои функции, по параметры описывать as variant и проверять не длину строки а условие isnull(p)
...
Рейтинг: 0 / 0
20.01.2005, 16:38:01
    #32875360
vladimir22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
посибо огромное всё получилось
...
Рейтинг: 0 / 0
20.01.2005, 17:59:44
    #32875640
vladimir22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
кто нибудь сталкивался???
всё тоже, только в ячейке "иВаНов ивАн иваНович"
нужно "Иванов Иван Иванович"
но может быть и одно и два и три и четыре и пять и до 50 слов
они разделены пробелом!
для одного всё просто:
--------------------------------------
Function temp_1(st As Variant)
st = Nz(st, "")
If Len(st) <> 0 Then temp_1 = UCase(Left(st, 1)) & LCase(Right(st, Len(st) - 1))
If Len(st) = 0 Then temp_1 = ""
End Function
--------------------------------------
как реализовать?
...
Рейтинг: 0 / 0
20.01.2005, 18:10:32
    #32875662
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
начиная с А2000 есть функция StrConv (?)

до - ручками
...
Рейтинг: 0 / 0
20.01.2005, 18:15:08
    #32875683
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
см функцию Split (если асс>=2000)
...
Рейтинг: 0 / 0
20.01.2005, 18:37:26
    #32875725
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
Если хочешь свою функцию - смотри пример
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Function Un(s as variant)
Dim f As Boolean, l As Integer, i As Integer, d As String, c As String *  1 

d = LCase$(Nz(s, ""))
l = Len(d)
f = True
For i =  1  To l
    c = Mid$(d, i,  1 )
    If c = " " Then
        f = True
    Else
        If f Then
            Mid$(d, i,  1 ) = UCase$(c)
            f = False
        End If
    End If
Next i
Un = d
End Function
...
Рейтинг: 0 / 0
20.01.2005, 18:40:07
    #32875728
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
Я бы вынес
f = False
из внутреннего ифа. А то вроде два пробела подряд обоработаются неправильно.

Если я ошибаюсь, пардон.
...
Рейтинг: 0 / 0
20.01.2005, 18:55:22
    #32875744
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
правильно обработаются смежные пробелы :) Несколько тактов сэкономим сбрасываючи его только в случае, если он был установлен
...
Рейтинг: 0 / 0
21.01.2005, 16:14:25
    #32877697
vladimir22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
посибо!!! начинаю пробывать
...
Рейтинг: 0 / 0
21.01.2005, 16:20:14
    #32877716
vladimir22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите написать фуккцию!
супер =))) спасибо, это то что нужно!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите написать фуккцию! / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]