Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2011, 22:49   #1
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию Передача данных из recordset

Уважаемые форумчане.
Прошу Вас помочь разобраться со следующей ситуацией.
1 Передаем на лист из recordset данные.
Получаем таблицу

Исполнитель
Иванов
Петров
Сидоров
Иванов
Петров

2. Ставим в Excel фильтр по фамилии Сидоров, получаем видимую строку
Исполнитель
Сидоров

обновляем recordset, фамилия Сидоров заменяется на фамилию Иванов
Исполнитель
Иванов

Т.е. данные из recordset вставляются в первую отфильтрованную строку, а надо во вторую строку листа (ячейку “J2”). Так чтобы при включенном фильтре построчно обновились данные Иванов на Иванов, Петров на Петров, Сидоров на Сидоров. Чтобы строка с фамилией Сидоров осталась без изменений. Как это сделать?

Цитата:
Sub pr()

Dim cn As New ADODB.Connection
Dim cm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim fldLoop As Field
Dim i As Integer
Dim ws As Worksheet
Set ws = Sheets(1)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = "Data Source = D:\Книга3; Extended Properties=Excel 8.0;"""
cn.Open
cm.ActiveConnection = cn
cm.CommandText = "SELECT Исполнитель FROM [Лист1$]"
rs.Open cm
Do While Not rs.EOF
rs.MoveNext
ws.Range("J" & 2).CopyFromRecordset rs

Loop

rs.Close
cn.Close
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub
Sergey112233 вне форума Ответить с цитированием
Старый 04.10.2011, 10:51   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Как это сделать?
Поставте корректно задачу и решайте ее.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.10.2011, 13:34   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
а надо во вторую строку листа (ячейку “J2”).
А почему вы считаете,что вторая отфильтрованная строка,ячейка имеет адрес J2
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 04.10.2011, 18:22   #4
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Поставте корректно задачу и решайте ее.
Есть такой вариант: выключить фильтр, обновить данные, поставить фильтр. Но этот вариант мне не очень нравится. Возможно ли осуществлять обновление иным способом, через параметры rs? (если таковые есть. Я их не нашел).
Sergey112233 вне форума Ответить с цитированием
Старый 04.10.2011, 18:32   #5
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
А почему вы считаете,что вторая отфильтрованная строка,ячейка имеет адрес J2
Вторая отфильтрованная строка, ячейка как раз не имеет адрес J2, она имеет J4. А при включенном фильтре в нее передаются данные, которые должны передаваться в J2
Sergey112233 вне форума Ответить с цитированием
Старый 04.10.2011, 18:45   #6
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

Пример обновления
Вложения
Тип файла: rar 1.rar (11.8 Кб, 11 просмотров)
Sergey112233 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных PR0Z0N PHP 0 25.10.2010 04:29
Передача данных по ЛС PONKA Работа с сетью в Delphi 1 27.11.2008 09:57
Передача данных Ivanich JavaScript, Ajax 1 29.04.2008 00:25
Передача данных ChipLink Общие вопросы Delphi 4 06.01.2008 11:28