Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Alex77755
10738 / 3311 / 549
Регистрация: 13.02.2009
Сообщений: 9,744
1

Разные гриды и разные рекордсеты

28.01.2014, 02:02. Просмотров 1020. Ответов 6
Метки нет (Все метки)

Полученный рекордсет из закрытой книги ексел могу выгрузить только в MSHFlexGrid1. Отравки кода
Visual Basic
1
2
3
4
5
        sCon = "select * from [Результат$]"
        RS.Open sCon, cn, 3, 3
        Set MSHFlexGrid1.Recordset = RS ' заполняет
        Set DataGrid1.DataSource = RS ' не заполняет грид пустой
'        Set MSFlexGrid1.DataSource = RS ' ошибка
Но если заполняю RS2 вручную, то DataGrid1 заполняется:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Dim RS2 As New ADODB.Recordset
    Dim i, c, r
    For c = 0 To 10
        RS2.Fields.Append "t" & c, adVarChar, 150 ' новые колонки
    Next
 
    RS2.Open
    With RS2
    For r = 1 To 20
            .AddNew
            For c = 0 To 10
                  .Fields("t" & c) = 10 * r + c
            Next c
            .Update
    Next r
    End With
        Set MSHFlexGrid1.Recordset = RS2 ' заполняет
        Set DataGrid1.DataSource = RS2 ' заполняет
'        Set MSFlexGrid1.DataSource = RS2 ' ошибка
В чём трабла? И почему назначение MSFlexGrid1.DataSource в обоих случаях вызывает ошибку?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2014, 02:02
Ответы с готовыми решениями:

Разные формы
У меня сть две формы, в первой стоит текст, а во второй стоит кнопка.Как...

Переход на разные листы по условию
Помогите пожалуйста!!!!! Как создать макрос, чтобы пользователь через данный...

Преобразовать разные форматы GUID
в общем трабла подсоединяюсь к ад через winnt получаю GUID вида...

Как раскрасить колонки диаграммы в разные цвета?
есть такой код помогите сделать так что бы колонки диаграммы были раскрашены в...

Разные размеры шрифта в строках одного TextBox
Здравствуйте! Я совсем еще туповат в программировании. Решил начать с Visual...

6
SoftIce
comment ca va
10452 / 3963 / 1013
Регистрация: 27.07.2011
Сообщений: 9,618
Завершенные тесты: 1
28.01.2014, 09:30 2
Разные гриды и разные рекордсеты
0
Alex77755
10738 / 3311 / 549
Регистрация: 13.02.2009
Сообщений: 9,744
28.01.2014, 11:32  [ТС] 3
Как это сделать программно?
Я же открваю рекордсет не просто так.
Это я показал, что все данные с листа берутся.
А в натуре будут и другие операторы типа "...where [Код товара]like '%" & [a2].Value & "%'""
И вот интересно что делаю не так, что не получается выгрузить в другие гриды, а только в MSHFlexGrid1
Ведь свойство Recordset есть у всех перечисленных гридов
0
The trick
Модератор
7365 / 2583 / 755
Регистрация: 22.02.2013
Сообщений: 3,799
Записей в блоге: 76
28.01.2014, 19:13 4
Если работаешь с ADO нужно использовать MSHFlexGrid.
Если работаешь с DAO нужно использовать MSFlexGrid.
2
Alex77755
10738 / 3311 / 549
Регистрация: 13.02.2009
Сообщений: 9,744
28.01.2014, 22:09  [ТС] 5
Меня больше интересовал DataGrid1.
Почему заполненный вручную рекордсет принимается, а полученный запросом нет.
И в то же время этот же запрос MSHFlexGrid1 воспринимает всегда?
0
The trick
Модератор
7365 / 2583 / 755
Регистрация: 22.02.2013
Сообщений: 3,799
Записей в блоге: 76
28.01.2014, 22:17 6
Лучший ответ Сообщение было отмечено Alex77755 как решение

Решение

CursorLocation как стоит? Какая ошибка? Вот рабочий код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
Dim DB As adodb.Connection
Dim Emp As adodb.Recordset
Private Sub Form_Load()
    Dim N As Long
    Set DB = New adodb.Connection
    DB.CursorLocation = adUseClient
    DB.ConnectionString = "Provider=Microsoft.Jet.oledb.4.0;" & _
    "Data Source=" & App.Path & "\DB.MDB"
    DB.Open
    Set Emp = DB.Execute("SELECT * FROM tblEmployees")
    
    Set DataGrid1.DataSource = Emp
End Sub
1
Alex77755
10738 / 3311 / 549
Регистрация: 13.02.2009
Сообщений: 9,744
29.01.2014, 07:02  [ТС] 7
Ошибки не выдаёт, но и не заполняет оба грида
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Комманда1_Click()
        Dim sCon As String, FieldName As String
'        Dim rs As Object, cn  As Object
'        Set rs = CreateObject("ADODB.Recordset")
'        Set cn = CreateObject("ADODB.Connection")
    Dim i, c, r
    Dim RS As New ADODB.Recordset
    Dim cn As New ADODB.Connection
        With cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=C:\ПРТ1.xls;" & "Extended Properties=Excel 8.0;"
            .Open
        End With
        sCon = "select * from [Результат$]"
        RS.Open sCon, cn, 3, 3
        Set MSHFlexGrid1.Recordset = RS ' заполняет
        Set DataGrid1.DataSource = RS ' не заполняет
'        Set MSFlexGrid1.DataSource = RS ' ошибка
' хвост кода с закрытием рекардсета, подключения, очистка переменных
Добавлено через 8 минут
Вот где собака порылась! Помогло!
Visual Basic
1
     cn.CursorLocation = adUseClient
0
29.01.2014, 07:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 07:02

Разные строки в ListBox нужно окрасить цветом
В ListBox выводятся даты, нужно СУББ и ВОСКРЕСЕНЬЕ выделять ЦВЕТОМ....

Иконки в ListView (разные для каждой строки)
Кто знает, можно-ли и как сделать, чтобы в ListView в режиме таблицы одна из...

Эквалайзер или разные типы звучания музыки
Всем знакома такая штука, под названием "Эквалайзер". С ее помощью можно можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru