|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.11.2011, 07:59 | #1 |
Пользователь
Регистрация: 10.12.2009
Сообщений: 62
|
DataGrid 6 и рабочий лист
Здравствуйте!
Как связать VBA- DataGrid 6 c лист Excel? Искал на форуме и на инете ничего подобного не нашел. Заранее спасибо тем кто поможет! |
03.11.2011, 10:35 | #2 | |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
Цитата:
можно конечно это сделать программно и отслеживать события на листе, а затем уже синхронизировать грид подобным образом в цикле Код:
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
|
03.11.2011, 10:40 | #3 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Дима, DataGrid и MSFlexGrid - разные контролы. Но смысл тот же, без танцев с бубнами никак. Да и не нужно это. Лист Эксел - чем не DataGrid? А по вожможностям на несколько порядков круче.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 Последний раз редактировалось kuklp; 03.11.2011 в 10:43. |
03.11.2011, 10:45 | #4 | |
Пользователь
Регистрация: 10.12.2009
Сообщений: 62
|
Цитата:
Вот нашел другой способ: Sub SelRng(rang As Range) 'строка подключения к текущей сохраненной(!) рабочей книге, 'HDR=Yes - первая строка содержит заголовки полей Const sCn1 = "Provider=Microsoft.Jet.OLEDB.4.0;D ata Source=" Const sCn2 = ";Extended Properties=""Excel 8.0;HDR=YES"";" Dim nm As String 'константы "Заготовки" строки запроса к заданному диапазону листа Const sQ1 = "SELECT * FROM [" nm = rang.Worksheet.Name & "$" & rang.Address(0, 0) & "]" Dim sCon As String 'создание экземпляра подключения и рекордсета Set cn1 = New ADODB.Connection Set rs1 = New ADODB.Recordset With ThisWorkbook 'Формирование строки подключения к источнику sCon = sCn1 + .Path + "\" + .Name + sCn2 End With cn1.Open sCon If Not cn1.State = 1 Then Exit Sub rs1.Open sQ1 + nm, cn1, adOpenStatic, adLockReadOnly Set dbGrid.DataSource = rs1 rs1.Close: cn1.Close 'закрытие созданных объектов Set cn1 = Nothing: Set rs1 = Nothing '"очищениние" занимаемой ими памяти End Sub но в DataGrid не чего не показывается, не подскажете в чем проблема? |
|
03.11.2011, 10:52 | #5 | |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
Цитата:
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
|
03.11.2011, 10:55 | #6 |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
Я знаю что разные контролы, но у меня почему то DataGrid не находит (хотя стоит у меня(VS 2010), и вообще я использую грид от OneStudio 8.0
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
03.11.2011, 10:58 | #7 |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
Simbad.
да и рекордсет у вас не обновляемый, не получиться ни добавить ни редактировать запись даже если удасться загрузить.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
03.11.2011, 11:00 | #8 |
Пользователь
Регистрация: 10.12.2009
Сообщений: 62
|
Да есть проверил вот так
Msgbox rs1.RecordCount показывает 3, действительно у меня 3 ячейки |
03.11.2011, 11:01 | #9 |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
добавьте строку выгрузки на лист вашего рекордсета
sheets("tmp").Cells(1, 1).CopyFromRecordset rs1 //////////////////// хотя Вы уже проверили...... скорей всего Вы нашли пример для VB, а поведение и свойства конролов могут отличаться
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
Последний раз редактировалось R Dmitry; 03.11.2011 в 11:06. |
03.11.2011, 11:58 | #10 |
Пользователь
Регистрация: 10.12.2009
Сообщений: 62
|
я удалил последние две строки, рекордсет работает нормально но по прежнему DataGrid пустой
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод целого массива на рабочий лист | drNabla | Microsoft Office Excel | 9 | 14.01.2011 02:22 |
Пустой рабочий лист или нет? | Simbad | Microsoft Office Excel | 2 | 21.01.2010 06:23 |
Защищена ли рабочий лист или нет? | Simbad | Microsoft Office Excel | 1 | 19.01.2010 06:47 |
Разбить рабочий лист MS Word на 2 страницы | Tayfun | Общие вопросы Delphi | 1 | 04.01.2010 18:26 |
При закрытии книги переключится в рабочий лист | valerij | Microsoft Office Excel | 8 | 03.07.2009 00:38 |