powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать данные поля!!
25 сообщений из 45, страница 1 из 2
Преобразовать данные поля!!
    #32793854
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!!!
Есть поле "НомераДокументов" с разными данными: УЕ195867, 7894856685, М465768, мне нужно получить поле с данными: 195867, 7894856685, 465768, т.е. если первые буквы, то их откинуть, если цифры, то оставить. Попробывала написать вот так: Номер: IsNumeric(Mid([НомерДокумента];1;2))=ложь, но.......?
Заранее спасибо.
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #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
Преобразовать данные поля!!
    #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
Преобразовать данные поля!!
    #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
Преобразовать данные поля!!
    #32794036
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давид, а ты свою zzz проверял?
Ну и как?

Regards
Alexander Artamonov

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

Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1

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

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

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

--
Regards
Alexander Artamonov

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


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

С приветом!
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794109
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давид, можно вопрос, вот я написала в модуле ту функцию, что вы мне дали, назвала ее RreDaty() потом когда в запросе я пишу в строке условия, в скобки я должна написать название поля [НомерДокумента], да?
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #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
Преобразовать данные поля!!
    #32794119
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мадина, извините на навязчивость, но любопытно, мой вариант у вас сработал?

--
Regards
Alexander Artamonov

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

Isrander68
Возможно потому, что у меня А'97 ?
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794176
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините Искандер68, но нет
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794200
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давид у меня ещё одна проблема, у меня это поле числовое, а в процедуре тип переменным дали строковые, вот., как быть...
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #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
Преобразовать данные поля!!
    #32794214
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzz=val(aaa)
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794217
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я поменяла на текстовый, а она все равно выдает ошибку:

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

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

--
Regards
Alexander Artamonov

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

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

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

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

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

--
Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #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
Преобразовать данные поля!!
    #32794330
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДАВИД Iskander68
Давид, а у тебя моя функция сработала?

--
Regards
Alexander Artamonov

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

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


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