Не работает DAO import Excel to Access

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Доброе утро, всем всем всем !!! =)

пожалуйста, помогите разобраться, ковырялcя вчера пол дня, так и не нашел решения ...
Присвоил кнопке на страничке Excel данный код, но при нажатии, ругается на строчку
Set rs = db.OpenRecordset("table", dbOpenTable)
Работаю из Excel 2010 и импортирую в Access 97

Код: Выделить всё

Sub DAOFromExcelToAccess()
Dim db As Database, rs As Recordset, r As Long
 Set db = OpenDatabase("\\сетевые ресурсы\DataBase.mdb")
    Set rs = db.OpenRecordset("table", dbOpenTable) 
    Dim ilastrow As Long
ilastrow = ActiveSheet.UsedRange.Rows.Count
    point_start = 3
    For i = point_start To ilastrow
        With rs
            .AddNew               
            .Fields("Point") = Range("D" & i).Value
            .Fields("Magnitude") = Range("e" & i).Value
            .Fields("Metrics") = Range("f" & i).Value
            .Fields("Value") = Range("h" & i).Value
            .Fields("User") = Environ("username")
            .Fields("Correction date") = CDate(Now())
            .Fields("Input date") = CDate(Now())
            .Fields("Year") = Range("m" & 4).Value
            .Fields("Month") = Range("m" & 6).Value
            .Update
        End With
    Next i
          rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
End Sub
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Ну, а ошибка-то какая? :) Может Table not found? Или что-то в этом духе?
Ещ можно сделать проще. Т.е. вообще безо всякого открытия курсоров, а с помощью SQL. Примерно так:

Код: Выделить всё

  Dim db As database, lastrow As Long
  Set db = DAO.OpenDatabase("....")
  For i = point_start To ilastrow
    db.Execute ("insert into table(point,magnitude,metrics,value,user,[correction date],[input date],year,month) values(" & _
    """" & Range("D" & i).Value & """," & _
    """" & Range("E" & i).Value & """," & _
    """" & Range("F" & i).Value & """," & _
    """" & Range("H" & i).Value & """," & _
    """" & Environ("username") & """," & _
    "now()," & _
    "now()," & _
    Range("m" & 4).Value & "," & _
    Range("m" & 4).Value & ")")
  Next

kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Naeel Maqsudov писал(а):Ну, а ошибка-то какая? :) Может Table not found? Или что-то в этом духе?
Ещ можно сделать проще. Т.е. вообще безо всякого открытия курсоров, а с помощью SQL. Примерно так:

Код: Выделить всё

Dim db As database, lastrow As Long
Set db = DAO.OpenDatabase("....")
For i = point_start To ilastrow
db.Execute ("insert into table(point,magnitude,metrics,value,user,[correction date],[input date],year,month) values(" & _
"""" & Range("D" & i).Value & """," & _
"""" & Range("E" & i).Value & """," & _
"""" & Range("F" & i).Value & """," & _
"""" & Range("H" & i).Value & """," & _
"""" & Environ("username") & """," & _
"now()," & _
"now()," & _
Range("m" & 4).Value & "," & _
Range("m" & 4).Value & ")")
Next


Спасибо за помощь, но всё равно не работает.

Если запустить мой код, выдает ошибку:
Моя ошибка..jpg
Попытался вашим кодом попробовать залить данные, выдает вот такую ошибку:
Моя ошибка..jpg

Пробовал подключать библиотеки, но не знаю если честно какую нужно, что бы заработало ))
Вложения
по предложению.jpg
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Нашел совершенно замечательный рабочий пример импорта данных из Excel в Access.
Вложения
mdb-xls..zip
(27.43 КБ) 54 скачивания
Ответить