Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / проблема с функцией Replace в запросе... / 21 сообщений из 21, страница 1 из 1
05.02.2004, 17:15
    #32399832
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
привет...

собственно, при составлении запроса в акесе проблем ни каких нет...)
но... неприятности начинаются, если этот запрос вызвать из MS QUERY... ругается он на эту функцию... чем можно заменить?...

в одном из полей хранится время в виде текста, например 10-56, и для того чтобы перевести это значение в дату я заменяю тире на двоеточие и преобразую все это в дату :
Код: plaintext
1.
2.
3.
select
   cdate( replace( '10-56', '-', ':' ) )
from
   t

кто-нибудь сталкивался с такой проблемой или у меня руки не прямые?...

спасибо...

лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
05.02.2004, 17:18
    #32399842
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
насколько я понимаю, то не плохо бы было указать имя колонки в ф-ии вместо '10-56'...

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
05.02.2004, 17:19
    #32399845
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Вопрос явно не по Аксессу. Могу перенести в другой форум.
...
Рейтинг: 0 / 0
05.02.2004, 17:20
    #32399849
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
2 ВС
слушай не увлекайся... вроде как по Access'у

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
05.02.2004, 17:22
    #32399855
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Вопрос, как перевести фразу с русского на английский, - это вопрос по русскому или по английскому?.. А, хрен с ним, наверно по обоим. :^)
...
Рейтинг: 0 / 0
05.02.2004, 17:24
    #32399857
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
2Sfagnum
даже если имя поля подставить вместо константы будет такой же результат...

2Владимир_Саныч
ок.. только не знаю куда!?...

лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
05.02.2004, 17:26
    #32399859
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Я тоже не знаю. Придется передумать. :^)
...
Рейтинг: 0 / 0
05.02.2004, 17:28
    #32399862
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
вообще, интересно, каие функции можно использовать в ms query?... потому что, например, функции datediff и cdate он понимает отлично...

лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
05.02.2004, 20:31
    #32400046
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
/topic/49369&hl=replace#343842\r
/topic/56346&hl=replace\r
М.б. есть чего. А вообще поиск много выдал.
...
Рейтинг: 0 / 0
06.02.2004, 11:16
    #32400459
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
2GEO
спасибо за ссылки...

в первой... про указание всех параметров написано... указал все параметры... ругань продолжается ( Неопределенная функция 'Replace' в вырожении )...

во второй... про потерю ссылок... проверил, все стоят... потерянных нет... в акесе запрос выполняется успешно...

p.s.
access 2000
меня, похоже, надо палкой ударить...
лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
06.02.2004, 13:05
    #32400708
Mike_LV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Попробуй заменить Replace на ИНСТРУКЦИЮ (НЕ функцию) Mid
из help'a Access2002. У меня работает.

Mid Statement

Replaces a specified number of characters in a Variant (String) variable with characters from another string.

Syntax

Mid(stringvar, start[, length]) = string

The Mid statement syntax has these parts:

Part Description
stringvar Required. Name of string variable to modify.
start Required; Variant (Long). Character position in stringvar where the replacement of text begins.
length Optional; Variant (Long). Number of characters to replace. If omitted, all of string is used.
string Required. String expression that replaces part of stringvar.



Remarks

The number of characters replaced is always less than or equal to the number of characters in stringvar.

Note Use the MidB statement with byte data contained in a string. In the MidB statement, start specifies the byte position within stringvar where replacement
begins and length specifies the numbers of bytes to replace.
...
Рейтинг: 0 / 0
06.02.2004, 13:07
    #32400718
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Через MS QUERY к функциям VBA не достучаться.
...
Рейтинг: 0 / 0
06.02.2004, 13:38
    #32400802
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Но многие строковые функции использовать можно: Left, Right, Mid, Trim ...
...
Рейтинг: 0 / 0
06.02.2004, 13:48
    #32400822
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Если формат определенный (типа твоего времени) можно Left'ом/Right'ом собрать.
А можно, если неопределенный, использовать ODBC функции, например, так:

Код: plaintext
1.
SELECT {fn LOCATE('-', FieldName)} as p, {fn LENGTH(FieldName)} as l, Left(FieldName, p -  1 ) + ':' + Right(FieldName, l - p)
FROM `...`.TableName TableName
...
Рейтинг: 0 / 0
06.02.2004, 14:10
    #32400860
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
ок... спасибо всем за помощь!...

2IgorM
Если формат определенный (типа твоего времени) можно Left'ом/Right'ом собрать.
А можно, если неопределенный, использовать ODBC функции, например...


клево... эта штука работает!...) так на будущее, а где можно узнать поподробнее какие там еще функции есть, может ссылку кинете?... а то в этой, такбыееэтусправку, справке по ms query ни чего нету, кроме как научиться мышкой щелкать...

2Mike_LV
блин, я "не догнал"...) как это выглядит в select?...
Код: plaintext
1.
2.
3.
select
   mid( '10-56',  3 ,  1  )
from
   t
возвращается тире ( и ms query не ругается ), но как заменить на двоеточие?... может, вообще-то, потом проблема возникнуть, например, если пользователь введет типа '9-56', вместо '09-56'...

лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
06.02.2004, 14:36
    #32400901
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
ну если формат фиксированый, то приблизительно так.
Код: plaintext
1.
2.
3.
select
   Left('10-56',  2 ) & ':' & Right('10-56',  2 )
from
   t
только ни хера не понимаю почему упорно юзаешь константу вместо t.Field1

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
06.02.2004, 14:46
    #32400908
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
да в целях упрощения... в поле то такие же значения хранятся, я имею ввиду в таком же формате... блин, ну в смысле время от минут через тире...( совсем уже заговорился:) )...

я вот тут попробывал поискать, и нашел такую функцию ( по аналогии с LOCATE ) :
{fn INSERT(string_exp1, start, length, string_exp2)}
но чего то она не хочет работать в ms query...

лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
06.02.2004, 15:36
    #32400999
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
elcolexно чего то она не хочет работать в ms query...

Это зависит не от query, а от odbc драйвера и ядра. Jet поддерживает только:

Скалярные функции ODBC - MS Office Access HelpФункции преобразования строк
ASCII LENGTH RTRIM
CHAR LOCATE SPACE
CONCAT LTRIM SUBSTRING
LCASE RIGHT UCASE
LEFT

Функции преобразования чисел
ABS FLOOR SIN
ATAN LOG SQRT
CEILING POWER TAN
COS RAND MOD
EXP SIGN

Функции даты и времени
CURDATE DAYOFYEAR MONTH
CURTIME YEAR WEEK
NOW HOUR QUARTER
DAYOFMONTH MINUTE MONTHNAME
DAYOFWEEK SECOND DAYNAME

Преобразование типа данных
CONVERT Строки могут быть преобразованы в следующие типы данных: SQL_FLOAT, SQL_DOUBLE, SQL_NUMERIC, SQL_INTEGER, SQL_REAL, SQL_SMALLINT, SQL_VARCHAR и SQL_DATETIME.
...
Рейтинг: 0 / 0
06.02.2004, 16:00
    #32401045
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
теперь понятно...
спасибо добрые люди!...)

лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
06.02.2004, 16:13
    #32401069
elcolex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
хм...постойте-ка... а почему тогда функции datediff и cdate работают?... ( вовремя убрав голову от просвистевшего мимо помидора )...

лучше побыть дураком 15 мин., чем остаться им на всю жизнь...
...
Рейтинг: 0 / 0
06.02.2004, 16:35
    #32401104
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с функцией Replace в запросе...
Ну, значит какие-то функции работают. Список не проси, у меня его нет. :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / проблема с функцией Replace в запросе... / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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