Взаимодействие Excel с Access

Программирование на Visual Basic for Applications
Владимер
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 14.01.2004 (Ср) 21:11

Взаимодействие Excel с Access

Сообщение Владимер » 14.01.2004 (Ср) 21:19

:oops:
Столкнулся с задачей: на уровне макроса извлечь данные в лист Excel из базы Access (таблицы Access) по определенному критерию поля и записи таблицы Access

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 15.01.2004 (Чт) 12:42

Код: Выделить всё
Dim conADO As ADODB.connection
Dim strConnect As String
Dim rstMan As ADODB.Recordset
Dim strSQL As String, j, k, n
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=(здесь адрес базы)"
Set conADO = New ADODB.connection
conADO = strConnect
conADO.Open
Set rstMan = New ADODB.Recordset
strSQL = "SELECT * FROM (имя таблицы) WHERE (условие для поиска в базе)"
rstMan.Open strSQL, conADO, adOpenStatic, adLockPessimistic, adCmdText
j = 0
For Each n In rstMan.Fields
j = j + 1
With ActiveSheet
    .Cells(1, j).Value = n.Name
    k = 2
    rstMan.MoveFirst
    While Not rstMan.EOF
        .Cells(k, j).Value = rstMan.Fields(n.Name).Value
        k = k + 1
        rstMan.MoveNext
    Wend
End With
Next n
"There's more than one way to do it!"

Владимер
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 14.01.2004 (Ср) 21:11

Не получилось Excel > Access

Сообщение Владимер » 15.01.2004 (Чт) 22:26

:oops: Вставил код, но выдало ошибку по строке
Dim conADO As ADODB.Connection

Compile error
User-defined type not defined

Возможно я чего, то не учел подскажите

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 16.01.2004 (Пт) 11:34

А ты библиотеку подключил? Tools=>References=>Microsoft ActiveX Data Object 2.5 Library
Ну или какая там у тебя есть...
"There's more than one way to do it!"

Владимер
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 14.01.2004 (Ср) 21:11

Спасибо но возник новый вопрос

Сообщение Владимер » 17.01.2004 (Сб) 20:47

:oops: Спасибо получилось
Но возник по ходу вопрос как корректно втянуть данные с листа Excel в Access

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 19.01.2004 (Пн) 10:51

Открываешь соединение описанным выше способом, а потом:

Код: Выделить всё
rstMan.AddNew (это если нужно добавить данные)
rstMan.Fields(имя поля в таблице) = (то, что нужно в поле вставить или изменить)
rstMan.Update


Сколько нужно полей, столько и заполняешь.
"There's more than one way to do it!"


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

    TopList