Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 225
от 21.02.2006, 14:39

Администратор:Калашников О.А.
В рассылке:Подписчиков: 116, Экспертов: 19
В номере:Вопросов: 1, Ответов: 1


Вопрос № 35554: Здравствуйте Есть проблемка в написании кода не магу разобраться с таблицей в Access Задача: нужно найти в таблице -100000 и заменить на предыдущее значение, палей в таблице много, -100000 встречается часто есть такие паля в которых -100000...

Вопрос № 35.554
Здравствуйте
Есть проблемка в написании кода не магу разобраться с таблицей в Access
Задача: нужно найти в таблице -100000 и заменить на предыдущее значение, палей в таблице много, -100000 встречается часто есть такие паля в которых -100000 в начале поля их нужно оставить без изменений и продолжать сканирование поля
дальше.

PS.Спасибо

Option Compare Database
Option Explicit

Dim rst As Recordset
Dim a As Integer
Dim i As Integer

Private Sub Button_NA_Click()
Set rst = CurrentDb.OpenRecordset("Таблица1", dbOpenDynaset)

If rst.Fields(i) Then
Do
i = i + 1
Loop While i = 10

On Error GoTo Errorrst
Errorrst:

If rst.Fields(i) <> -100000 Then

a = rst.Fields(i)
rst.MoveNext

Resume

Else
While rst.Fields(i) = -100000

With rst
.Edit
.Fields(i) = a
.Update
rst.MovePrevious
End With
Wend

Resume
End If
End If
End Sub
Отправлен: 16.02.2006, 14:36
Вопрос задал: Копысов Николай Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: DrakoN
Здравствуйте, Копысов Николай Александрович!
Накручено капец можно проще...
If rst.Fields(i) Then
Do
i = i + 1
Loop While i = 10

On Error GoTo Errorrst
Errorrst:

If rst.Fields(i) <> -100000 Then

a = rst.Fields(i)
rst.MoveNext

Resume

Else
While rst.Fields(i) = -100000

With rst
.Edit
.Fields(i) = a
.Update
rst.MovePrevious
End With
Wend

Resume
End If
End If
твой вариант..
мой-

rst.Fields.MoveFirst()
For i = 0 to rst.RecordCount-1
i = rst.Fields(какой-там номер столбца).Value
rst.Movenext()
if rst.Fields(бла-бла-бла).Value = -100000 then
rst.Fields(бла-бла-бла).Value = i
end if
next i

примерно так....если, что пиши.Удачи!
---------
От Винта!
Ответ отправил: DrakoN (статус: Студент)
Отправлен: 16.02.2006, 15:33


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.14 (бета) от 09.02.2006
Яндекс Rambler's Top100

В избранное