powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Импорт данных из ячеек Excel в Access 97
5 сообщений из 5, страница 1 из 1
Импорт данных из ячеек Excel в Access 97
    #37703396
Sergey.Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

помогите пожалуйста решить вот какой вопрос:
Есть Excel файл, в который вносят информация, хочу сделать что бы при нажатии на кнопку, информация из определенных ячеек, добавлялась в базу Acces 97 в определенные таблицы. Вот написал такой код, но не работает, может кто-то сможет скинуть рабочий пример реализации этой задачки?

Пробовал тремя различными методами, не один не работает.





Sub DAOFromExcelToAccess()
' exports data from the active worksheet to a table in an Access database
' this procedure must be edited before use



Dim db As Database, lastrow As Long
Set db = OpenDatabase("\\fslmk\DataBase.mdb")
ilastrow = ActiveSheet.UsedRange.Rows.Count
' r = 3 ' the start row in the worksheet
'Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
point_start = 3
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" & 6).Value & ")")
Next













Dim rs As Recordset, r As Long
' open the database
If Environ("username") = "KuznetsovSL" Then
Set db = OpenDatabase("\\fslmk\DataBase.mdb", False, False, "MS Access;PWD=""")
Else
Set db = OpenDatabase("\\fslmk\DataBase.mdb")
End If

Set rs = db.OpenRecordset("Table", dbOpenTable) ', dbAppendOnly)
' get all records in a table
ilastrow = ActiveSheet.UsedRange.Rows.Count
r = 3 ' the start row in the worksheet
'Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
point_start = 3
For i = point_start To ilastrow
With rs
.AddNew ' create a new record
' add values to each field in the record
.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
' add more fields if necessary...
.Update ' stores the new record
End With
Next i
'r = r + 1 ' next row
'Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Sub


Sub ADOFromExcelToAccess()
' exports data from the active worksheet to a table in an Access database
' this procedure must be edited before use
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
' connect to the Access database
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=\\fslmk\DataBase.mdb;"
' open a recordset
Set rs = New ADODB.Recordset
Dim ccn As String
'cn = Replace(CStr(cn), "Admin", "KuznetsovSL")
rs.Open "table", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 3 ' the start row in the worksheet
point_start = 3
For i = point_start To ilastrow
With rs
.AddNew ' create a new record
' add values to each field in the record
.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
' add more fields if necessary...
.Update ' stores the new record
End With
Next i
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub

...
Рейтинг: 0 / 0
Импорт данных из ячеек Excel в Access 97
    #37703463
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey.Kuznetsov... Вот написал такой код, но не работает, может кто-то сможет скинуть рабочий пример реализации этой задачки?

Пробовал тремя различными методами, не один не работает.
...

Код не смотрел. со стороны Акцесса импорт в таблицу из Экселя решал ч-з ADO. Было вот так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Option Compare Database
Const wbFileName = "XXX.xls" 'Имя файла - источника данных
Const strDBXLSFullName = "\\XXX\XXX.xls" '- полный путь к нему
'Dim strDBXLSFullName As String
Sub GetDataFromXLS()
Dim xlsObj As Object
Dim xlsWb As Object
Dim i, records_count, t1, t2
Dim cn, rs, srs

t1 = Now

Set xlsObj = CreateObject("Excel.Application")
xlsObj.Visible = True
xlsObj.WorkBooks.Open strDBXLSFullName
Set wsData = xlsObj.WorkBooks(wbFileName).WorkSheets("data1")
records_count = wsData.Range("A1").CurrentRegion.Rows.Count
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
src = "tblTemp" ' данные заливаются во временную таблицу
With rs
    
.Open src, cn, adOpenDynamic, adLockOptimistic

For i = 2 To records_count
'Циклом по строке фигачу рекордсет
.AddNew
.Fields("DatenTime") = wsData.Cells(i, 1).Value
.Fields("OutPhone") = wsData.Cells(i, 2).Value
.Fields("InPhone") = wsData.Cells(i, 3).Value
.Fields("Customer") = wsData.Cells(i, 4).Value
.Fields("t1") = wsData.Cells(i, 5).Value
.Fields("t2") = wsData.Cells(i, 6).Value
.Fields("Status") = wsData.Cells(i, 7).Value
.Fields("Operator") = wsData.Cells(i, 8).Value
.Update
        
Next i
.Close
End With
Set rs = Nothing
cn.Close
Set cn = Nothing
t2 = Now
MsgBox t1 & "  " & t2
End Sub
...
Рейтинг: 0 / 0
Импорт данных из ячеек Excel в Access 97
    #37704096
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кладовщик, вот хороший и понятный пример действий с mdb из excel.
...
Рейтинг: 0 / 0
Импорт данных из ячеек Excel в Access 97
    #37704097
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще ссылочка на msdn по теме
...
Рейтинг: 0 / 0
Импорт данных из ячеек Excel в Access 97
    #37704313
Sergey.Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanB,

СПАСИБО !!!! ОТЛИЧНЫЙ ПРИМЕР !!! ТО ЧТО НУЖНО !!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Импорт данных из ячеек Excel в Access 97
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]