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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2011, 13:23   #1
Caside
 
Регистрация: 07.04.2011
Сообщений: 7
По умолчанию Импорт внешних данных из Access

Мне нужно заполнить листбокс формы данными из базы данных Access. Создал макрос в автоматическом режиме:
Код:
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        "ODBC;DSN=База данных MS Access;DBQ=C:\DOCUMENTS AND SETTINGS\alex\Рабочий стол\mybd.mdb;DefaultDir=C:\DOCUMENTS AND SETTINGS\alex\Ра" _
        ), Array( _
        "бочий стол;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), _
        Destination:=Range("A14"))
        .CommandText = Array( _
        "SELECT книги.название" & Chr(13) & "" & Chr(10) & "FROM `C:\DOCUMENTS AND SETTINGS\alex\Рабочий стол\mybd`.книги книги" _
        )
        .Name = "Запрос из База данных MS Access"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Но в нём данные можно поместить только на лист, а мне надо сразу в листбокс.
Caside вне форума Ответить с цитированием
Старый 28.04.2011, 15:04   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Не забудьте добавить ссылку на библиотеку ADO
Код:
Sub Go_Junior()
Const sCn1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
ListBox1.Clear
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Dim sCon As String, sSql As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
    sCon = sCn1 + "C:\DOCUMENTS AND SETTINGS\alex\Рабочий стол\mybd.mdb"
    cn.Open sCon
    
    If Not cn.State = 1 Then Exit Sub

 sSql = "SELECT книги.название " + _
    "FROM книги ;"
    rs.Open sSql, cn, adOpenStatic, adLockReadOnly
      ListBox1.Column() = rs.GetRows
rs.Close:   cn.Close
Set cn = Nothing:   Set rs = Nothing
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.04.2011, 20:14   #3
Caside
 
Регистрация: 07.04.2011
Сообщений: 7
По умолчанию

Выдаёт ошибку
user-defined type not found на Dim cn As ADODB.Connection, rs As ADODB.Recordset
Caside вне форума Ответить с цитированием
Старый 28.04.2011, 20:20   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Не забудьте добавить ссылку на библиотеку ADO
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.04.2011, 20:25   #5
Caside
 
Регистрация: 07.04.2011
Сообщений: 7
По умолчанию

Я изначально подключил, и при запуске появляется эта ошибка.
Caside вне форума Ответить с цитированием
Старый 28.04.2011, 21:40   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

в имени файла все выразил
Вложения
Тип файла: rar Напряг.rar (33.4 Кб, 15 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.05.2011, 11:48   #7
Caside
 
Регистрация: 07.04.2011
Сообщений: 7
По умолчанию

А как сделать выборку из базы, например у меня есть база заказчик с столбцами название, адрес, телефон. Есть листбокс, в котором забиты названия заказчиков. Нужно заполнить ячейки по нажатию кнопки и занести адрес в A1 например, телефон в A2 того заказчика, название которого выбрано в листбоксе. В строку запроса пишу SELECT заказчики.адрес FROM заказчики WHERE заказчики.название=ListBox1.text. При этом возникает ошибка.
Caside вне форума Ответить с цитированием
Старый 05.05.2011, 11:58   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
заказчики.название Like "'" & ListBox1.text & "'"
Код:
заказчики.название = "'" & ListBox1.text & "'"
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт листа Excel из ячейки OLE базы данных Access Gawwws Microsoft Office Excel 1 14.01.2011 00:58
импорт данных из access в excel. romale_80 Microsoft Office Access 8 25.03.2010 01:26
Импорт внешних данных, если данные в архиве Zip Vic65 Microsoft Office Excel 5 29.07.2008 14:10
Импорт внешних данных, синхронизация по времени slba Microsoft Office Excel 3 15.07.2008 13:05
Импорт внешних данных asale Microsoft Office Excel 1 15.04.2007 00:41