Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Братья помогите, а то я спячу / 8 сообщений из 8, страница 1 из 1
08.06.2016, 19:57
    #39253147
vasjaspb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Братья помогите, а то я спячу
Есть таблица «вход» нужно превратить ее в табличку «выход». Дорогие форумчане, помогите с кодом VBA чтобы, заполнить диапазон строк названием улицы из верхней строки, до строки с другой улицей, и т.д. Таблицы здоровущие, в 5-7 тысяч строк. Очень прошу.
...
Рейтинг: 0 / 0
08.06.2016, 19:58
    #39253149
vasjaspb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Братья помогите, а то я спячу
Файл не прилепился
...
Рейтинг: 0 / 0
09.06.2016, 08:57
    #39253284
Братья помогите, а то я спячу
vasjaspb, потестируйте такой код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Dim DB As DAO.Database, RSI As DAO.Recordset, RSO As DAO.Recordset
Dim sq$, ul
  Set DB = CurrentDb
  DB.Execute "DELETE * FROM выход"
  sq = "SELECT * FROM вход ORDER BY КЛЮЧ"
  Set RSI = DB.OpenRecordset(sq, dbOpenSnapshot)
  sq = "SELECT * FROM выход"
  Set RSO = DB.OpenRecordset(sq, dbOpenDynaset)
  ul = Null
  Do Until RSI.EOF
    If Not IsNull(RSI!УЛИЦА) Then ul = RSI!УЛИЦА
    If Not (IsNull(RSI!ДОМ) Or IsNull(ul)) Then
      RSO.AddNew
      RSO!КЛЮЧ = RSI!КЛЮЧ: RSO!УЛИЦА = ul: RSO!ДОМ = RSI!ДОМ
      RSO.Update
    End If
    RSI.MoveNext
  Loop
  RSI.Close: RSO.Close
  Set RSI = Nothing: Set RSO = Nothing: Set DB = Nothing
...
Рейтинг: 0 / 0
09.06.2016, 14:58
    #39253694
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Братья помогите, а то я спячу
vasjaspb,

Обязательно кодом VBA?
А если запросом заполнить таблицу ВЫХОД?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
INSERT INTO ВЫХОД (КЛЮЧ,УЛИЦА,ДОМ)
SELECT КЛЮЧ, 
       IIf(УЛИЦА Is Null, 
           DLookUp("УЛИЦА","ВХОД","Not УЛИЦА Is NUll AND КЛЮЧ=" & Nz(DMax("КЛЮЧ","ВХОД","Not УЛИЦА Is NUll AND КЛЮЧ<" & КЛЮЧ),0)),
           УЛИЦА] AS U, 
       ДОМ
FROM ВХОД
ORDER BY КЛЮЧ;
...
Рейтинг: 0 / 0
09.06.2016, 15:51
    #39253753
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Братья помогите, а то я спячу
Вот так, может, побыстрее будет.
И отсев записей с пустым ДОМ еще добавлен.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
INSERT INTO ВЫХОД (КЛЮЧ, УЛИЦА, ДОМ)
SELECT T.КЛЮЧ AS КЛЮЧ, 
       IIf(УЛИЦА Is Null,
          (SELECT УЛИЦА FROM ВХОД WHERE Not УЛИЦА Is NUll AND КЛЮЧ=Nz((SELECT Max(КЛЮЧ) FROM ВХОД WHERE Not УЛИЦА Is NUll AND КЛЮЧ<T.КЛЮЧ),0)),
          УЛИЦА), 
       T.ДОМ AS ДОМ
FROM ВХОД AS T
WHERE Not T.ДОМ Is Null
ORDER BY T.КЛЮЧ;
...
Рейтинг: 0 / 0
09.06.2016, 20:08
    #39253888
vasjaspb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Братья помогите, а то я спячу
Практикант и Мишель! Я вот уже пять минут сижу с выпученными глазами. Меня одновременно переполняют чувства - удивления, восторга, благодарности и уважения. Оба способа отлично работают, по крайней мере на моем примере. Это какое то волшебство. Благодарю Вас от всей души, желаю Вам всяческих благ и творческих успехов. Вы мне очень помогли. Крепко жму руки.
...
Рейтинг: 0 / 0
09.06.2016, 20:26
    #39253893
vasjaspb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Братья помогите, а то я спячу
-Практикант-, благодарю, работает! )
...
Рейтинг: 0 / 0
09.06.2016, 20:26
    #39253894
vasjaspb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Братья помогите, а то я спячу
__Michelle, Благодарю, работает! )
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Братья помогите, а то я спячу / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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