Консультация № 161771
01.03.2009, 22:58
0.00 руб.
0 6 1
Ув. экстперты, как сделать чтобы 2х-мерный массив в структуре access упорядочивался по возростанию и убіванию с помощью программы, написанной в vba excel и отображался там на форме в ListBox при нажатии созданніх для єтого кнопок!?

Обсуждение

Неизвестный
02.03.2009, 18:48
общий
Здравствуйте Natasha Nikiforova.
Уточните, "2х-мерный массив в структуре access" - данные из таблицы MS Access?
"...и отображался там..." - форма в файле MS Excel?
Неизвестный
02.03.2009, 23:43
общий
Да! Вы все правильно поняли!!!
Неизвестный
03.03.2009, 03:52
общий
это ответ
Здравствуйте, Natasha Nikiforova!
Если нужно просто отобразить содержимое какого-либо столбца из таблицы MS Acces в ListBox формы MS Excel...

Например, данные лежат в "D:\test.mdb" , в таблице "tbl" , выводить нужно столбец "Поле1" из этой таблицы...
есть форма, на ней ListBox с именем "ListBox1" и две кнопки "CommandButton1" и "CommandButton2"
в модуле формы код:
Код:

Option Explicit

'здесь нужно указать строку подключения к Вашему файла данных
Const CONNECTION_STRING = "DSN=MS Access Database;DBQ=D:\test.mdb"

'здесь имя Вашей таблицы
Const TABLE_NAME = "tbl"

'здесь имя выводимого поля
Const FIELD_NAME = "Поле1"

'выводит в порядке возрастания
Private Sub CommandButton1_Click()
Fill "ASC"
End Sub

'выводит в порядке убывания
Private Sub CommandButton2_Click()
Fill "DESC"
End Sub

'заполняет ListBox1 значениями из поля FIELD_NAME
Private Sub Fill(ByVal Sort As String)
Dim RS
ListBox1.Clear

'для простоты использовал позднее связывание
Set RS = CreateObject("ADODB.Recordset")

RS.Open "SELECT * FROM [" & TABLE_NAME & "] ORDER BY [" & FIELD_NAME & "] " & Sort, CONNECTION_STRING, 3

While Not RS.EOF
ListBox1.AddItem RS.Fields(FIELD_NAME).Value
RS.MoveNext
Wend

RS.Close
Set RS = Nothing
End Sub


все...
Успехов.
Неизвестный
03.03.2009, 10:32
общий
Здравствуйте Natasha Nikiforova
после ответа от HookEst, практически нечего добавить, все просто и замечательно, как велосипед.;)

",,,'здесь нужно указать строку подключения к Вашему файла данных,,,"
рекомендую использовать подобную строку подключения:
Const CONNECTION_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BD.mdb;Persist Security Info=False"
она позволяет непосредственно обращаться к БД, без создания "DSN".

и добавить больше нечего.
Неизвестный
04.03.2009, 02:23
общий
to Тесленко Евгений Алексеевич:
Спасибо, Connection string - моя вечная проблема, никак не могу запомнить всех этих провайдеров))
теперь сохранил в файл, надеюсь не потеряю...
Неизвестный
04.03.2009, 22:04
общий
to HookEst
не за что, тем более это очень легко с применением UDL.
создается текстовый файл, изменяется тип с TXT на UDL, строится в с его помощью подключение к любому источнику.
далее просто достается текстовым редактором из него готовая строка подключения.
или используется ссылка на UDL файл:
Const CONNECTION_STRING = = "FILE NAME=C:\BD.UDL"
Форма ответа