powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / помогите написать фуккцию!
12 сообщений из 12, страница 1 из 1
помогите написать фуккцию!
    #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
помогите написать фуккцию!
    #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
помогите написать фуккцию!
    #32875146
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заменить нах вызов temp(text1,n1) на
Код: plaintext
iif(isnull(n1),Text1,n1)

P.S.
если хочется писать свои функции, по параметры описывать as variant и проверять не длину строки а условие isnull(p)
...
Рейтинг: 0 / 0
помогите написать фуккцию!
    #32875360
vladimir22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посибо огромное всё получилось
...
Рейтинг: 0 / 0
помогите написать фуккцию!
    #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
помогите написать фуккцию!
    #32875662
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начиная с А2000 есть функция StrConv (?)

до - ручками
...
Рейтинг: 0 / 0
помогите написать фуккцию!
    #32875683
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см функцию Split (если асс>=2000)
...
Рейтинг: 0 / 0
помогите написать фуккцию!
    #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
помогите написать фуккцию!
    #32875728
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я бы вынес
f = False
из внутреннего ифа. А то вроде два пробела подряд обоработаются неправильно.

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


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