powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать данные поля!!
45 сообщений из 45, показаны все 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
Преобразовать данные поля!!
    #32794350
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ББББББББББББ
Можно сначала, я уже сама запуталась и кажеться вас запутала, столько данных уйма........
Так вот у меня текстовое поле [НомерДокументов], они вот такого вида УЕ456326, М73576, 67474734768, 00000999875, и все . Две и одна буква.
Мне приходят другие данные 456326, 73576, 67474734768, короче без букв. и мне нужно их сравнить, те и эти.
Вот какое условие нужно поставить, что бы в поле у меня стали только цифры без букв.
И большое вам спасибо за помощь :-*
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794358
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, Мадина всех кинула :-)

Байке, твоя работает. Но если вдруг есть буква после цифры, то она эту букву
тоже включает. У меня возвращает то, что после последней буквы. У Давида (с
необходимыми исправлениями) возвращает все цифры из строки.

Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794379
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT PreDaty(ГВЦ.НомерДокумента)
FROM ГВЦ INNER JOIN [Табл. с цифрами] PreDaty(ГВЦ.НомерДокумента) = [Табл. с цифрами].[Поле с цифрами]
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794398
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iskander68
Похоже, Мадина всех кинула :-)

Байке, твоя работает. Но если вдруг есть буква после цифры, то она эту букву
тоже включает. У меня возвращает то, что после последней буквы. У Давида (с
необходимыми исправлениями) возвращает все цифры из строки.

Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1

В соответвии с заданием
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794406
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДАВИДSELECT PreDaty(ГВЦ.НомерДокумента)
FROM ГВЦ INNER JOIN [Табл. с цифрами] PreDaty(ГВЦ.НомерДокумента) = [Табл. с цифрами].[Поле с цифрами]

Код: plaintext
1.
SELECT PreDaty(ГВЦ.НомерДокумента) 
FROM ГВЦ INNER JOIN [Табл. с цифрами] ON PreDaty(ГВЦ.НомерДокумента) = [Табл. с цифрами].[Поле с цифрами]
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794414
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, так у всех делает то, что нужно Мадине. Токо что-то она не спешит
отчитаться о проверках.

--
Regards
Alexander Artamonov

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

А НУЖНО-ЛИ ??? ВОТ ИЗ ЗЕ КВЕЩИН !!!
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32794951
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Элементарные правила вежливости, my dear Watson.

--
Regards
Alexander Artamonov

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

Миль гранд пардонте!
Причем тут это. Мы веть говорим о Даме???

Забыл человек, замотался...
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32795587
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВООБще то я ни кого не кидала!!!!
На счет благадарности я помню, но просто по нашему времени было уже позно и я с работы пошла домой (всетки как вы сказали я дама, позно ходить страншно ;-) ), вы это не учли, А на счет отчиталась по работе ваших подсказак, так пока у меня не работает, стараемся тут.
Так что, без обид :))
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32795595
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мадина, при чем здесь благодарность? Вопрос был два раза: что и как было
сделано, чтобы работающие функции отказывались работать? Может, что-то не
так делаете?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32795801
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам запрос я переделала, он вот такой:
UPDATE [гвц(опыт)] SET [гвц(опыт)].НомерДокумента = LetNum([гвц(опыт)]!НомерДокумента);

В модуле написала вот так:
Option Compare Database
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

Может что я не так делаю, у меня уже сил нэту, на все нюансы которые выходят каждый день :' ' (
Большое Вам спасибо что помогаете
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32795878
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в какой модуль? Если функция в запросе, то нужно в общий модуль, а не в
модуль формы - если Вы вдруг не знаете.
А как, кстати "не получается"? Сообщение об ошибке, выползает, или еще что
нибудь?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32795943
Фотография ДАВИД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДАВИД
Код: plaintext
1.
SELECT PreDaty(ГВЦ.НомерДокумента) 
FROM ГВЦ INNER JOIN [Табл. с цифрами] ON PreDaty(ГВЦ.НомерДокумента) = [Табл. с цифрами].[Поле с цифрами]

Напоминаю уще раз !
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32796005
Madina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iskander68 :
Это уж я знаю, пишу в общем модуле.
Когда запускаю запрос выдает ошибку в модуле, на 2 и 16 строке :-(.

ДАВИД :

Когда запускаю запрос, который вы написали, мне выходит ошибка что не может равняться [Табл. с цифрами].[Поле с цифрами] или недопустимое выражение :-(
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32796054
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 и 16 строка это что? какие команды? Можете обработчик ошибок пока в
комментарий убрать.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32797577
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MadinaIskander68 :
Это уж я знаю, пишу в общем модуле.
Когда запускаю запрос выдает ошибку в модуле, на 2 и 16 строке :-(.

ДАВИД :

Когда запускаю запрос, который вы написали, мне выходит ошибка что не может равняться [Табл. с цифрами].[Поле с цифрами] или недопустимое выражение :-(

Madina, вы вопрос нормально сформулируйте. Что вам нужно?
А то получается вопрос глуго со слепым.
Приведите пример вашего запроса, требуемый результат, таблицы с полями которые нужно вывести и данные которые нужно сравнить.
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32797586
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извените, фигня какая-то.
Там должно быть разговор глухого со слепым.
...
Рейтинг: 0 / 0
Преобразовать данные поля!!
    #32798032
Madina
Номер: IsNumeric(Mid([НомерДокумента];1;2))=ложь

текущий частный случай (без VBA)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT t.aNum,
Switch (t.aNum Like "[!0-9]#*", Mid(t.aNum, 2 ) ,
             t.aNum Like "?[!0-9]#*",  Mid(t.aNum, 3 ),
             t.aNum Like "#*" , t.aNum) AS TrimABC

FROM t
WHERE t.aNum Like "#*"
              OR t.aNum Like "[!0-9]#*"
              OR t.aNum Like "[!0-9][!0-9]#*";
...
Рейтинг: 0 / 0
45 сообщений из 45, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Преобразовать данные поля!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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