powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите пожалуйста (вычислить сколько пробелов в строке)
17 сообщений из 17, страница 1 из 1
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32434104
Bastard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте !
1) Есть проблема: необходимо вычислить сколько пробелов в строке ! С помощью какой функции это можно сделать ?
Т.е.: "БЕНЗИН АВТОМОБИЛЬНЫЙ С СОДЕРЖАНИЕМ СЕРЫ" как посчитать, что внутри строки 4 пробела и затем вычленить слова: "бензин" "автомобильный" "содержанием" "серы" ???
Причем, как именно выдернуть подстроки ???
Дайте пример пожалуйста, если можно ! Очень пожалуйста - не получается разобраться :-(
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32434112
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С помощью какой функции это можно сделать ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Возвращение строк из функций
Chr$	ChrB$	*Command$
CurDir$	Date$	Dir$
Error$	Format$	Hex$
Input$	InputB$	LCase$
Left$	LeftB$	LTrim$
Mid$	MidB$	Oct$
Right$	RightB$	RTrim$
Space$	Str$	String$
Time$	Trim$	Ucase$
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32434113
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Go сюда
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32434119
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A2000?
Dim strA As String
Dim arrA
strA = "маша ела кашу"
arrA = Split(strA )

MsgBox UBound(arrA)+1
MsgBox arrA(0)
MsgBox arrA(1)
MsgBox arrA(2)
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32434197
Bastard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где надо исправить, штобы вадавался не последний элемент массива (последняя подстрока разделенная пробелом), а по очереди все элементы строки, мне нужно сделать выборку по каждому слову в строке ("шла Саша по шоссе" выбрать:
Select Field Like "шла"
потом
Select Field Like "Саша" )
затем
Select Field Like "по"
затем
Select Field Like "шоссе"

Function SearchSurPlus(ByVal vstrIn As String) As String
Dim i As Long
Dim Arr
Arr = Split(vstrIn)
For i = 0 To (UBound(Arr))
vstrIn = Arr(i)
Next
SearchSurPlus = Trim$(vstrIn)
End Function



Как модифицировать функцию ??
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32434549
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А зачем спрашивать по второму разу после того, как уже ответили?\r
/topic/78950
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32435523
Bastard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы знаете - не разобрался! С удалением мусора все понятно пробенаем строку посимвольно и т.д. А вот как изменить функцию чтобы на входе была целая строка, а на выходе все вхождения разделенные пробелами ? Извиняюсь если надоел уже этим вопросом - он для меня жизненно важен, огромная просьба объясните поподробнее ПОЖАЛУЙСТА !
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32435532
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как и где используются эти селекты?

к примеру формируем запрос с Union выбирающий все значения строки
такая функция вернет готовую строку SQL
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function SearchSurPlus(ByVal vstrIn As String) As String
Dim i As Long
Dim Arr
Dim strSQL As String
Arr = Split(vstrIn)
For i =  0  To (UBound(Arr))
strSQL = strSQL &  "Select * from Tbl1 Where tbl1.field1 like '" & Trim$(Arr(i)) & "'" 
If i < UBound(Arr) Then strSQL = strSQL &  " UNION " 
Next
SearchSurPlus = strSQL &  ";" 
End Function
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32436253
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
диалогА зачем спрашивать по второму разу после того, как уже ответили?
Вы знаете - не разобрался!
Но люди, которые не видели старого топика, начнут отвечать заново то, что уже отвечено. Людей не жалко?
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32437187
Bastard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Продолжая разговор :
В строке условие в конструкторе пишу следующее:

Like SearchSurPlus([nom_dvi_bp]![Inom1]),

где [nom_dvi_bp]![inom1] - запрос, выборка по которому содержит полей 20 !!!

Function SearchSurPlus(ByVal vstrIn As String) As String
Dim i As Long
Dim Arr
Dim strSQL As String
Arr = Split(vstrIn)
strSQL = "'" & trim$(arr(0)) & "'"
If (UBound(Arr)) = 1 Then
strSQL=strSQL + "Union"
End If
For i = 1 To (UBound(Arr))
strSQL = strSQL & "Select * from Skmtr Where Skmtr.Поле3 like '" & Trim$(Arr(i)) & "'"
If i < UBound(Arr) Then strSQL = strSQL & " UNION "
Next
SearchSurPlus = strSQL & ";"
End Function

Допустим значение поля [Inom1] равно "лампа электрическая",
то по идее запрос должен иметь вид:

Select Поле3 From Skmtr where skmtr.поле3 like 'лампа' Union
Select Поле3 From Skmtr where skmtr.поле3 like 'электрическая';

Должно работать - а не работает ((((((
Подскажите пожалуйста в чем может быть проблема ???
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32437202
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз - поясни, где и как используешь запрос c like?
Что вообще хочешь сделать?
Подробнее.
Конечно, если в конструкторе в Like засовывать готовый запрос с UNION - не будет работать.
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32437240
Bastard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем проблема следующая:
Есть одна таблица Table1 в ней текстовое поле Field1, есть вторая таблица Table2 в ней текстовое поле Filed2. Во второй таблице содержаться значения, допустим такие:
"лес пиловочник","опора вала","олифа комбинированная"
В первой таблице находятся заведомо правильные обозначения:
"пиловочник хвойный","опора вала в сборе","опора вентеля","олифа комбинированная светлая" ну и т.д. Важно что: выбрать из таблицы Table1 поля Field1 все значения в которых есть вхождения хотя бы одного слова из поля Field2 таблицы Table2.
То есть: если у нас в поле Field2 таблицы Table2 есть значение "олифа комбинированная" или "лес пиловочник", то из таблицы Table1 из поля Field1 нужно выбрать все записи где есть слова: "олифа", "комбинированная", "олифа комбинированная", "лес", "пиловочник", "лес пиловочник".
Причем потом выборку засунуть в таблицу!
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32437281
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так
имеем еще table3, куда сразу сбрасываем по мере прохода по записям table2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim rst As DAO.Recordset
Dim Arr
Set rst = CurrentDb.OpenRecordset( "table2" )
rst.MoveFirst
Do While Not rst.EOF
Arr = Split(rst![field2])
For i =  0  To (UBound(Arr))
CurrentDb.Execute  "INSERT INTO table3 ( field1 ) SELECT table1.field1 "  & _
 "FROM table1 WHERE table1.field1 Like '*" & Trim$(Arr(i)) & "*';" 
Next i
rst.MoveNext
Loop

(можно по вкусу, конечно и ADO.recordset)
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32437320
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю что делать столько запросов сколько слов - неверно. Тк Like не использует индексы, а значит таблица будет сканироваться много раз. Для большой таблицы это будет очень заметно. Лучше сделать все в одном запросе, где много операторов like, те T1.Field like "*слово1" or T1.Field like "*слово2*" и тд
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32441259
Bastard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В функции пишу :

Dim rst As DAO.Recordset

User-defined type not defined

Как определить этот самый тип, и вообще где можно почитать для новичков про использование ADO и DAO ???
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32441260
Bastard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин не договорил, вылазит следующая ошибка :

User-defined type not defined

Как ее победить ?
...
Рейтинг: 0 / 0
Помогите пожалуйста (вычислить сколько пробелов в строке)
    #32441295
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окно редактора модуля - tools (сервис) - references (ссылки) - Microsoft DAO ??? - галка - ОК.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите пожалуйста (вычислить сколько пробелов в строке)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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