powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удаление символа
13 сообщений из 13, страница 1 из 1
Удаление символа
    #32762468
petrovmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, подскажите. Вот задача - есть таблица, в ней столбец, где есть значения которые начинаются на 11, так вот как удалить 11, а остальное оставить???
Заранее спасибо.
...
Рейтинг: 0 / 0
Удаление символа
    #32762519
roman2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИМХО, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim temp1 As String
db = CurrentDb()
set rst = db.OpenRecordset("SELECT * FROM table1 WHERE column1 LIKE '11*'")
For i =  1  To rst.RecordCount
    temp1 = rst.Fields("column1")
    temp1 = Mid(temp1,  2 )
    rst.Edit
    rst.Fields("column1") = temp1
    rst.Update
    If rst.AbsolutePosition <> rst.RecordCount -  1  Then rst.MoveNext
Next i
...
Рейтинг: 0 / 0
Удаление символа
    #32762745
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman2ИМХО, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim temp1 As String
db = CurrentDb()
set rst = db.OpenRecordset("SELECT * FROM table1 WHERE column1 LIKE '11*'")
For i =  1  To rst.RecordCount
    temp1 = rst.Fields("column1")
    temp1 = Mid(temp1,  2 )
    rst.Edit
    rst.Fields("column1") = temp1
    rst.Update
    If rst.AbsolutePosition <> rst.RecordCount -  1  Then rst.MoveNext
Next i


интересно реализован цикл прохода по рекордсету :)
проход по циклу осуществится ровно один раз, так как rst.RecordCount в данном случае вернёт 1 или 0.

вот так наверно проще:
Код: plaintext
1.
2.
 do while not rst.eof
  rst.movenext
 loop
...
Рейтинг: 0 / 0
Удаление символа
    #32762769
roman2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, ты абсолютно прав. Но если перед циклом сделать rst.MoveLast, то RecordCount должно вернуть правильное значение.
...
Рейтинг: 0 / 0
Удаление символа
    #32762778
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Да, ты абсолютно прав. Но если перед циклом сделать rst.MoveLast, то RecordCount должно вернуть правильное значение.


а если записей нет, то ошибку выкинет, т.е надо ещё проверку на наличие записей делать, проще и удобнее делать так:
do while not rst.eof
...
rst.movenext
loop
...
Рейтинг: 0 / 0
Удаление символа
    #32762789
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во чудаки ...
зачем рекордсет,
просто запрос Update сделать слабо?
...
Рейтинг: 0 / 0
Удаление символа
    #32762826
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LatukВо чудаки ...
зачем рекордсет,
просто запрос Update сделать слабо?

можно и рекордсетом, я просто обратил внимание на реализацию цикла прохода по рекордсету :)
...
Рейтинг: 0 / 0
Удаление символа
    #32762865
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По Latuk :

Код: plaintext
Currentdb.Execute "UPDATE tbl SET s = Mid([s],3) WHERE (((Left([s],2))="11"));"

Красота! Только одна строчка!
...
Рейтинг: 0 / 0
Удаление символа
    #32762935
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По Latuk :

Currentdb.Execute "UPDATE tbl SET s = Mid([s],3) WHERE
(((Left([s],2))="11"));"


Красота! Только одна строчка!



Сокращать, так сокращать. "WHERE S LIKE '11*'

Regards
Alexander Artamonov

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

Currentdb.Execute "UPDATE tbl SET s = Mid([s],3) WHERE
(((Left([s],2))="11"));"


Красота! Только одна строчка!



Сокращать, так сокращать. "WHERE S LIKE '11*'

Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Удаление символа
    #32763383
roman2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin DmitryПо Latuk :

Код: plaintext
Currentdb.Execute "UPDATE tbl SET s = Mid([s],3) WHERE (((Left([s],2))="11"));"
Красота! Только одна строчка!

Так что же получается VBA парсит любой запрос на наличие своих функций и в сиквельный запрос можно вставлять любую функцию VBA ????
...
Рейтинг: 0 / 0
Удаление символа
    #32763388
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roman2 Rivkin DmitryПо Latuk :

Код: plaintext
Currentdb.Execute "UPDATE tbl SET s = Mid([s],3) WHERE (((Left([s],2))="11"));"
Красота! Только одна строчка!

Так что же получается VBA парсит любой запрос на наличие своих функций и в сиквельный запрос можно вставлять любую функцию VBA ????

это звучит невероятно, но так и есть, ты даже свои ф-ии можешь вставить в запрос :)
...
Рейтинг: 0 / 0
Удаление символа
    #32763457
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не только функции но и ссылки на объекты
Например Forms!МояФорма!МойТекстбокс и делает это не VBA а Jet
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удаление символа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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