Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 как считать данные из таблицы построчно?  [new]
rarus
Member

Откуда:
Сообщений: 6
Задача такая: есть код типа:

Sub My2()
Dim R As Recordset


Set R = CurrentDb.OpenRecordset("SELECT * FROM [Òàáë1]", dbOpenDynaset)
Dim str As String
str = "абв:гдежзи"
per = InStr(str, ":")
MsgBox (Left(str, per - 1))

End Sub

соответственно он выведет на экран "абв" отбросив все по двоеточие. Есть таблица "Tabl1". Как сделать что бы считать стабличку построчно обрезать все значение по двоеточия и запихнуть их обратно в этот же столбец.

получается логика такая что:
"ячейка1:мусор = ячейка1", а ":мусор" удаляем.
12 сен 06, 14:59    [3124749]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Решается 1 запросом:

UPDATE ... SELECT ... WHERE ... Фы1
InStr(...) Фы1
Iif(...) Фы1
12 сен 06, 15:18    [3124894]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
R17
Member

Откуда:
Сообщений: 18
Для отображения:
SELECT Left([Field1], InStr([Field1], ':') - 1) from table1;
Для обновления:
UPDATE table1 SET table1.Field1 = Left([Field1],InStr([Field1],':')-1);
12 сен 06, 15:20    [3124909]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
rarus
Member

Откуда:
Сообщений: 6
ой а может кто нибудь готовый код кинет если не жалко и не сложно?

табличка tabl1 судержит следующие поля

key pol1
1 efewafweafw11:wefwe
2 wfweafweafw12:few
3 waefwefweafa13:wefwe

вот как поле "pol1" обрубить.
12 сен 06, 15:50    [3125134]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
R17
Member

Откуда:
Сообщений: 18
С кодом сложнее, быстрее сделать так:
1. Сделать копию таблицы Tabl1.
2. Перейти в режим SQL конструктора запросов.
3. Набрать там:
UPDATE Tabl1 SET tabl1.pol1 = Left([pol1],InStr([pol1],':')-1);
4. Нажать на кнопку !
12 сен 06, 16:23    [3125354]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
Ёжик`
Member

Откуда:
Сообщений: 5992
UPDATE Tabl1 SET pol1 = Left([pol1],InStr([pol1],":")-1)
WHERE InStr([pol1],":")>0
12 сен 06, 17:03    [3125691]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
rarus
Member

Откуда:
Сообщений: 6
всем спасибо. В итоге заработало вот так:

Sub My6()
Dim SQLStr As String
Dim dbs As Database
Dim qdf As QueryDef

Set dbs = CurrentDb()
SQLStr = "UPDATE Tabl1 SET pol1 = Left([pol1],InStr([pol1]," & "'" & ":" & "'" & ")-1) WHERE InStr([pol1], " & "'" & ":" & "'" & ") > 0"
Set qdf = dbs.CreateQueryDef("")
qdf.SQL = SQLStr
qdf.Execute
qdf.Close



End Sub
13 сен 06, 05:00    [3127310]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
Ёжик`
Member

Откуда:
Сообщений: 5992
rarus
всем спасибо. В итоге заработало вот так:
...

К чему такие сложности?
CurrentDb.Execute "UPDATE Tabl1 SET pol1 = Left([pol1],InStr([pol1]," & "'" & ":" & "'" & ")-1) WHERE InStr([pol1], " & "'" & ":" & "'" & ") > 0"
13 сен 06, 08:48    [3127548]     Ответить | Цитировать Сообщить модератору
 Re: как считать данные из таблицы построчно?  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Э, нет, так кода наскока меньше-то! Больше правильного кода!
13 сен 06, 08:49    [3127554]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить