Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать данные поля!! / 25 сообщений из 45, страница 1 из 2
22.11.2004, 13:05:06
    #32793854
Madina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Привет всем!!!
Есть поле "НомераДокументов" с разными данными: УЕ195867, 7894856685, М465768, мне нужно получить поле с данными: 195867, 7894856685, 465768, т.е. если первые буквы, то их откинуть, если цифры, то оставить. Попробывала написать вот так: Номер: IsNumeric(Mid([НомерДокумента];1;2))=ложь, но.......?
Заранее спасибо.
...
Рейтинг: 0 / 0
22.11.2004, 13:37:23
    #32793972
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Я бы свою функцию написал. Если бы точно знать, что, например, может быть
либо 2 буквы либо нисколько, то можно было бы напр. IIF + isnumeric+
left+mid использовать. Если быстро, дешево (т.е. даром) и ненадежно (без
гарантий) :-), то:

Public Function LetNum(N As String) As String
On Error GoTo ERRTRAP

If IsNumeric(N) Then
LetNum = N
Else
LetNum = LetNum(Mid(N, 2))
End If

EXIT_FUN:
Exit Function

ERRTRAP:
MsgBox "Произошла ошибка" & err.Number & ". " & err.Description,
vbInformation

Resume EXIT_FUN

End Function

С буквами в конце НЕ РАБОТАЕТ! - нужно дописать проверку на условие
IsNumeric(Right(N,1))

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 13:48:18
    #32794007
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Например, так:

Public Function LetNum(N As String) As String
On Error GoTo ERRTRAP
If IsNumeric(N) Then
LetNum = N
Else
If IsNumeric(Right(N, 1)) = False Then
MsgBox ("Буква в конце")
Exit Function
End If
LetNum = LetNum(Mid(N, 2))
End If
EXIT_FUN:
Exit Function
ERRTRAP:
MsgBox "Произошла ошибка " & err.Number & ". " & err.Description,
vbInformation
Resume EXIT_FUN
End Function

Пусть меня поправят, ибо я не программист.

Надеюсь, что с этим делать дальше, знаешь.


Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 13:48:25
    #32794008
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
MadinaПривет всем!!!
Есть поле "НомераДокументов" с разными данными: УЕ195867, 7894856685, М465768, мне нужно получить поле с данными: 195867, 7894856685, 465768, т.е. если первые буквы, то их откинуть, если цифры, то оставить. Попробывала написать вот так: Номер: IsNumeric(Mid([НомерДокумента];1;2))=ложь, но.......?
Заранее спасибо.

А так ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function zzz()
Dim aaa As String
Dim qqq As String
aaa = ""
qqq = ""
For i =  1  To Len([НомераДокументов])
   qqq = Mid([НомераДокументов]i,  1 )
   If qqq Like "[0-9]" Then
   aaa = aaa & qqq
   End If
Next
zzz = aaa
End Function

Я так думая!
...
Рейтинг: 0 / 0
22.11.2004, 13:56:50
    #32794036
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Давид, а ты свою zzz проверял?
Ну и как?

Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 14:07:16
    #32794062
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Iskander68
Давид, а ты свою zzz проверял?
Ну и как?

Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1

А как же. Обижаеш началник!

Ну правда надо так...
Код: plaintext
qqq = Mid([НомераДокументов],i,  1 )

Звиняйте, бывает -> Очепятка!
...
Рейтинг: 0 / 0
22.11.2004, 14:14:32
    #32794092
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Зрю через стены, что у тебя Option Explicit не стоит. А напрасно, батенька!

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 14:21:42
    #32794108
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Iskander68
Зрю через стены, что у тебя Option Explicit не стоит. А напрасно, батенька!


Ну не стоит... Ну упал... На пол...
Но ведь работает и подходит к случаю, а если не позволяет воспитание, поставтье
Код: plaintext
1.
Option Explicit 
Dim i as integer

С приветом!
...
Рейтинг: 0 / 0
22.11.2004, 14:21:49
    #32794109
Madina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Давид, можно вопрос, вот я написала в модуле ту функцию, что вы мне дали, назвала ее RreDaty() потом когда в запросе я пишу в строке условия, в скобки я должна написать название поля [НомерДокумента], да?
...
Рейтинг: 0 / 0
22.11.2004, 14:23:07
    #32794115
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Все равно не работает - по крайней мере у меня.
А вот если все-таки объявить функции аргумент (как оно здесь по логике вещей
и требуется)
Public Function (Field as String) as String
etc., то работает.
Что я сделал. Вставил твою функцию в модуль (пришлось дописать dim i as
Integer).
Вызвал в запросе. Выдает ошибку TypeMismatch.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 14:23:56
    #32794119
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Мадина, извините на навязчивость, но любопытно, мой вариант у вас сработал?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 14:34:07
    #32794158
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
MadinaДавид, можно вопрос, вот я написала в модуле ту функцию, что вы мне дали, назвала ее RreDaty() потом когда в запросе я пишу в строке условия, в скобки я должна написать название поля [НомерДокумента], да?
Madina
Пожалуйста, напишие запрос, о котором Вы говорите.
К сожалению я не понял, о чем конкретно речь.

Isrander68
Возможно потому, что у меня А'97 ?
...
Рейтинг: 0 / 0
22.11.2004, 14:39:29
    #32794176
Madina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Извините Искандер68, но нет
...
Рейтинг: 0 / 0
22.11.2004, 14:46:07
    #32794200
Madina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Давид у меня ещё одна проблема, у меня это поле числовое, а в процедуре тип переменным дали строковые, вот., как быть...
...
Рейтинг: 0 / 0
22.11.2004, 14:47:55
    #32794205
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
MadinaДавид, можно вопрос, вот я написала в модуле ту функцию, что вы мне дали, назвала ее RreDaty() потом когда в запросе я пишу в строке условия, в скобки я должна написать название поля [НомерДокумента], да?
Кажется понял.
Это я проверя, потом копировал, вот кое-что и пропало.Извините.
Исправленное...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Function zzz()
Dim aaa As String
Dim qqq As String
Dim i As Integer
aaa = ""
qqq = ""
For i =  1  To Len(me![НомераДокументов])
   qqq = Mid(me![НомераДокументов],i,  1 )
   If qqq Like "[0-9]" Then
   aaa = aaa & qqq
   End If
Next
zzz = aaa
End Function
Давид
...
Рейтинг: 0 / 0
22.11.2004, 14:49:56
    #32794214
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
zzz=val(aaa)
...
Рейтинг: 0 / 0
22.11.2004, 14:51:22
    #32794217
Madina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
я поменяла на текстовый, а она все равно выдает ошибку:

"Неопределенная функция PreDaty() в выражение"

Сам запрос простой : SELECT ГВЦ.НомерДокумента
FROM ГВЦ
WHERE (((ГВЦ.НомерДокумента)=PreDaty()));
...
Рейтинг: 0 / 0
22.11.2004, 14:59:33
    #32794244
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Мадина, а что вы сделали (с моей функцией), опишите, пожалуйста

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 15:03:04
    #32794258
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Madinaя поменяла на текстовый, а она все равно выдает ошибку:

"Неопределенная функция PreDaty() в выражение"]

Ничего не понял!!!

Если использовать в запросе ф-цию то ей надо передать поле в качастве параметра и саму ф-цию переписать с параметрами. Но тогда что с чем в запросе сравнивать???

Код: plaintext
Ничего не понимаю! Аналогично
...
Рейтинг: 0 / 0
22.11.2004, 15:03:55
    #32794265
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
"Давид у меня ещё одна проблема, у меня это поле числовое, а в процедуре тип
переменным дали строковые, вот., как быть..."
Это какое поле числовое, в котором "УЕ195867, 7894856685, М465768"?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 15:04:53
    #32794269
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Давид, а у тебя моя функция сработала?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 15:12:21
    #32794292
ДАВИД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Iskander68
Давид, а у тебя моя функция сработала?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
Не пробовал.
НО, а если в переди 1 буква, или сзади 3, а в середине 2 . Необходимо изымать ВСЕ буквы, оставляя только цифири.
...
Рейтинг: 0 / 0
22.11.2004, 15:17:18
    #32794313
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Насколько я понял задачу, в значении поля может быть некоторое количество
букв (1-2). Остальные - цифру. Исходя из этого и написал функцию.
Если нужно вычленить все цифры, то само собой, нужно по другому делать.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
22.11.2004, 15:19:16
    #32794321
baike2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function GetNum(strIn As String) As String
  Dim i As Integer
 
  GetNum = ""
  For i =  1  To Len(strIn)
    If Mid$(strIn, i,  1 ) Like "[0-9]" Then
       GetNum = Mid$(strIn, i, Len(strIn) - i +  1 )
       Exit For
    End If
  Next
  
End Function
...
Рейтинг: 0 / 0
22.11.2004, 15:21:02
    #32794330
baike2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать данные поля!!
ДАВИД Iskander68
Давид, а у тебя моя функция сработала?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
Не пробовал.
НО, а если в переди 1 буква, или сзади 3, а в середине 2 . Необходимо изымать ВСЕ буквы, оставляя только цифири.

написано что первые буквы остальные цифры
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать данные поля!! / 25 сообщений из 45, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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