Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / .12345 if firstsymbol = '.' then = 0+12345 Возможно ли? / 18 сообщений из 18, страница 1 из 1
24.01.2003, 23:40
    #32096266
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Добрый вечер.
Никогда не юзал ACCESS, а тут пришлось.
Суть в следующем из нескольких таблиц надо вытащить 2 стринговых поля

(с этим все ясно) и одно числовое

это я добиваюсь
Expr1: [Table1].[name]+Trim(Str([age]))+[surname]

Единственная загвоздка в следующем. Если число начинается на 0
то оно представляется в виде, к примеру .23456
так вот надо проверить первый символ, если он равен точке то точку надо заменить на 0
.23456 = 023456
Такое возможно или нет???
Спасибо
...
Рейтинг: 0 / 0
25.01.2003, 00:07
    #32096267
-=Alexey=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
1.со строками лучше вместо + использовать &
2.result = iif(mid(str,1,1)=".",CDbl("0" & str),0) что то типа того
...
Рейтинг: 0 / 0
25.01.2003, 01:02
    #32096278
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Я не совсем понял

Я в Аксесе 0

Что я делаю
1. Иду по закладке Query
2. Там я сделал новый квери
3. Щелкаю на field правой кнопкой и выбираю Build
4. Появляется Expression builder

там мне хотя бы написать что выбираю поле [age] и проверяю первый символ

написав как посоветовали ниче не вышло. Сообщения неккоректности.

result=iif(mid(str[age],1,1)=".",CDbl("0" & str[age]),0)

или это где-то в другом месте писать надо. или где то select писать надо???
мне этот синтаксис ваще не понятен ;-((
...
Рейтинг: 0 / 0
25.01.2003, 02:50
    #32096280
-=Alexey=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
я тут неудачно имя переменной для примера выбрал - str
скажем имя поля у вас x, в поле запроса пишите x1: IIf(Mid([x],1,1)=".",CDbl("0" & [x]),0) делает следущее, если первый символ точка то добавляет в начало ноль и преобразует к типу double, иначе возвращает 0

я в базе Борей в таблицу Типы добавил текстовое поле - х. запрос такой вышел SELECT Типы.*, IIf(Mid([x],1,1)=".",CDbl("0" & [x]),0) AS x1
FROM Типы;
исходные данные (поле х)
.76
.23
xxx
90

результат

0.76
0.23
0
0
...
Рейтинг: 0 / 0
25.01.2003, 21:13
    #32096359
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Я наверно дятел, но я не понял чего куда мы добавляем.


..в поле запроса пишите x1: IIf(Mid([x],1,1)=".",CDbl("0" & [x]),0)
с этим вроде все ясно

а вот

я в базе Борей в таблицу Типы добавил текстовое поле - х. запрос такой вышел SELECT Типы.*, IIf(Mid([x],1,1)=".",CDbl("0" & [x]),0) AS x1
FROM Типы;

в какую таблицу Типы??? и как именно там добавить???
...
Рейтинг: 0 / 0
25.01.2003, 21:17
    #32096360
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
У меня к примеру есть база "Тест" и там 1 таблица "Проба"

name text
surname text
age Number
...
Рейтинг: 0 / 0
26.01.2003, 09:57
    #32096401
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Код: plaintext
Expr1: [Table1].[name]+Выражение1: IIf(Left$(CStr([age]); 1 )= "." ; "0 " & Mid$(CStr([age]); 2 );CStr([age]))+[surname] 


Но, честно говоря, такой геморрой...
Возможно, есть дополнительные условия, которые могли бы все упростить?
Например, точка может встречаться только в начале и ее всегда надо заменять на 0 (при условии Access 2000)?
...
Рейтинг: 0 / 0
26.01.2003, 19:34
    #32096459
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Точка может быть и не вначале, но только первая интересует, если она есть то в 0, нет тогда без изменений

Access 2000

Если не секрет, что написать вместо "выражение1". я вообще в этот синтаксис не врубаюсь. ;-(((
Хелп у меня не проинстален, а диска нет доинсталить, даже прочесть негде.
...
Рейтинг: 0 / 0
27.01.2003, 11:57
    #32096645
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Sorry, error...

Код: plaintext
Expr1: [Table1].[name] & IIf(Left$(CStr([age]); 1 )= "." ; "0 " & Mid$(CStr([age]); 2 );CStr([age])) & [surname]
...
Рейтинг: 0 / 0
28.01.2003, 00:03
    #32097077
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Спасибо. Енто пошло. только не совсем правильно
Если первый символ точка, то точка должна заменяться на 0, а не прибавлять 0 к началу.
А так прикольно, даже чего то зарулило.
Спасибо.
Если вдруг есть время скажите как организовать с заменой.
...
Рейтинг: 0 / 0
28.01.2003, 23:27
    #32097809
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
А если нужно взять крайние правые четыре цифры, не равные 0, но если при продвижении влево встречается точка или зяпятая, её нужно игнорировать?
Это может упростить задачу?
Заранее спасибо.
...
Рейтинг: 0 / 0
29.01.2003, 12:27
    #32098061
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Странно, должно работать как заказывали ;0)
Времени проверить сейчас нет.
А дополнительные условия могут только усложнить задачу.
Но нет ничего невозможного, только придется использовать функцию VBA
...
Рейтинг: 0 / 0
29.01.2003, 15:50
    #32098270
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
"0" - замена на другой символ все равно ставит в начало 0, а не заменяет "."
???
...
Рейтинг: 0 / 0
29.01.2003, 17:13
    #32098355
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Вот проверка через VBA:

Код: plaintext
1.
2.
3.
4.
Sub CheckIt()
Dim age As String
age =  ".12321 "
MsgBox IIf(Left$(CStr(age),  1 ) =  "." ,  "0 " & Mid$(CStr(age),  2 ), CStr(age))
End Sub


Создайте модуль, вставьте туда этот текст и запустите процедуру на выполнение.
Результат должен быть 012321
У меня все ОК
...
Рейтинг: 0 / 0
30.01.2003, 01:06
    #32098540
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Спасибо. разобрался где писать и что.
если в VBA написать то работает.
А можно как-то в запросе вызывать функцию CheckIt?
А то подставить то я подставил, но он при запуске запроса параметр требует.
Чего напишешь, то он и подставляет вместо точки.

Насколько я понимаю немного ф-цию переделать надо на параметрическую, но как?
...
Рейтинг: 0 / 0
31.01.2003, 00:22
    #32099170
Alex Juice
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Выражение1:MyFunction([MyField])
...
Рейтинг: 0 / 0
01.02.2003, 00:41
    #32099923
Andrew Volkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Большое спасибо. Со всем разобрался...
но после Делфей висуал бейсик - это полный.....
...
Рейтинг: 0 / 0
01.02.2003, 11:03
    #32099954
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.12345 if firstsymbol = '.' then = 0+12345 Возможно ли?
Васисуал бейсик я бы рассматривал не в отрыве от остального, что с ним взаимодействует (формы и пр.).
А вообще-то в запросе должно было работать и без функции...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / .12345 if firstsymbol = '.' then = 0+12345 Возможно ли? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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