LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Запрос на...
 Тема: Запрос на обновление
 
 15.06.2007 21:09:35
All
4316 сообщения
1-ый


Тема: Запрос на обновление
Есть Таблица, в которой в том числе есть поля Дата и Номер. В поле Дата есть повторяющиеся значения (Краткий формат), в поле Номер есть пустые значения. Нужно перенумеровать в Таблице непустые поля Номер так, чтобы нумерация соответствовала сортировке по возрастанию поля Дата.
(нумеровать можно с единицы). Т.е. из таблицы

__Дата__________Номер
05.01.05__________24
02.01.05__________12
12.01.05___________2
12.01.05___________5
01.01.05__________17

получить

__Дата__________Номер
01.01.05___________1
02.01.05___________2
05.01.05___________3
12.01.05___________4
12.01.05___________5

Как построить запрос на обновление?


P.S. Раздел для новичков
Автор: Не спец от 0:00:00 Источник ...
 15.06.2007 21:09:35
All
4316 сообщения
1-ый


RE: Запрос на обновление
Лучше использовать VBA, чем писать запрос на SQL. Открываете запрос SQL (strSQL = SELECT * From Table1 Order By Дата) с сортировкой по дате и далее в цикле переименовываете данные.План
set rst = Openrecordset (strSQL)
rst.MoveLast
rst.MoveFirst
For i=0 to rst.Recordcount-1
rst.Edit
rst!Номер = i+1
rst!Update
Next
...


P.S. Раздел для новичков
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 21:09:35
All
4316 сообщения
1-ый


RE: Запрос на обновление
Спасибо! Действительно, однажды уже делал даже более сложные вещи на VBA, но лишь однажды, сейчас и не подумал об этом. Бум пробовать.


P.S. Раздел для новичков
Автор: Не спец от 0:00:00 Источник ...
 15.06.2007 21:09:35
All
4316 сообщения
1-ый


RE: Запрос на обновление
Уважаемый Admin. Так как на самом деле поле Дата находится в другой таблице - сделал так:

i = 1
Set rstOut = New ADODB.Recordset
rstOut.Open _
"SELECT Table1.Номер FROM Table1 LEFT JOIN Table2 ON Table1.Код = Table2.Код WHERE(((Table1.Номер) Is Not Null)) ORDER BY Table2.Дата, Table1.Номер;", CurrentProject.Connection

With rstOut
If .RecordCount > 0 Then
.MoveFirst
Do
rstOut.Fields("НомерРезки") = i
i = i + 1
rstOut.Update
.MoveNext
Loop Until .EOF
End If
End With

rstOut.Close
Set rstOut = Nothing


Однако выдает:
Error : Не поддерживается выражение объединения. (-2147217900)

Что неверно? Помогите, пожалуйста!



P.S. Раздел для новичков
Автор: Не спец от 0:00:00 Источник ...
 15.06.2007 21:09:35
All
4316 сообщения
1-ый


RE: Запрос на обновление
Странно, почему я не вижу свои предыдущие два сообщения в этой теме??
В общем, добавил adLockOptimistic и все вроде заработало...


P.S. Раздел для новичков
Автор: Не спец от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Запрос на...
ПоискПоиск  Список форумовСписок форумов  
right