Здравствуйте, Уважаемые форумчане. Прошу Вас, при помощи VBA выбрать данные из базы Access в Ексель. Есть файл access в котором содержатся 5 запросов, мне нужно чтобы информация, из каждого запроса, выгрузить в определенную книгу Ексель, назовем (Анализ), в определенные листы, назовем их, (1,2,3,4,5). Запросы в access называются так же , (1,2,3,4,5). Спасибо всем кто откликнется.
Здравствуйте, Уважаемые форумчане. Прошу Вас, при помощи VBA выбрать данные из базы Access в Ексель. Есть файл access в котором содержатся 5 запросов, мне нужно чтобы информация, из каждого запроса, выгрузить в определенную книгу Ексель, назовем (Анализ), в определенные листы, назовем их, (1,2,3,4,5). Запросы в access называются так же , (1,2,3,4,5). Спасибо всем кто откликнется.Chelovekov
Простo сделайте MSQuery с соответствующих листов в базу access но в качестве источника выбрать не таблицы, а query. Если нужно обновлять, то макросом прописать только обновление. Из бонусов - это сразу умная таблица, можно данные автоматом перед охранением удалять. ….
Простo сделайте MSQuery с соответствующих листов в базу access но в качестве источника выбрать не таблицы, а query. Если нужно обновлять, то макросом прописать только обновление. Из бонусов - это сразу умная таблица, можно данные автоматом перед охранением удалять. ….bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Спасибо, но я хочу при помощи VBA. Я на просторах интернета нашел вот такой код VBA , попробовал, вроде работает, но как его переделать под мои нужны, которые я описал сверху, может поможете.
[vba]
Код
Sub выбрать_1()
Dim connDB As New ADODB.Connection Dim rs As New ADODB.Recordset
Set rs = connDB.Execute("SELECT * FROM " & sTable)
For i = 1 To rs.Fields.Count ws.Cells(3, i).Value = rs.Fields(i - 1).Name Next i
ws.Range("A4:K200").ClearContents
ws.Range("A4").CopyFromRecordset rs
ErrorSub: For Each err In connDB.Errors res = MsgBox(err.Description & Chr(13) & Chr(13) & "Èñòî÷íèê îøèáêè: " & err.Source, , " Îøèáêè ðàáîòû ñ áàçîé äàííûõ !") Next
ClearMemory:
rs.Close connDB.Close Set rs = Nothing Set connDB = Nothing
End Sub
[/vba]
Спасибо, но я хочу при помощи VBA. Я на просторах интернета нашел вот такой код VBA , попробовал, вроде работает, но как его переделать под мои нужны, которые я описал сверху, может поможете.
[vba]
Код
Sub выбрать_1()
Dim connDB As New ADODB.Connection Dim rs As New ADODB.Recordset
означавет что вы экспортируете результат Query в Excel и тогда перенос темы оправдан, но код приведенный не подходит. Если вы хотите загрузить данные, то есть импортировать, то тогда код подходит но ветка Excel должна была остаться. В любом случае, если вы не можете самостоятельно скорректировать код, то с чем связано желание получить решение на VBA? Мазохизм?
означавет что вы экспортируете результат Query в Excel и тогда перенос темы оправдан, но код приведенный не подходит. Если вы хотите загрузить данные, то есть импортировать, то тогда код подходит но ветка Excel должна была остаться. В любом случае, если вы не можете самостоятельно скорректировать код, то с чем связано желание получить решение на VBA? Мазохизм?bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Вторник, 05.02.2019, 17:53
Sub выбрать_1() Const sPath$ = "d:\Desktop\Реестр договоров.accdb" Dim sConn, oRS As Object 10 sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath 20 On Error GoTo err 30 Set oRS = CreateObject("adodb.recordset") 40 For i = 1 To 5 50 rr = oRS.Open("select * from " & i, sConn) 60 With Sheets(i & "") 70 .UsedRange.Delete 80 With .ListObjects.Add(xlSrcQuery, oRS, , , .[A1]) 90 .Refresh: .Unlink 100 End With 110 End With 120 oRS.Close 130 Next 140 Set oRS = Nothing 150 On Error GoTo 0 160 Exit Sub err: 170 MsgBox "An error #" & err.Number & " (" & err.Description & ") has occurred in procedure выбрать_1 on line " & Erl End Sub
[/vba]
[vba]
Код
Sub выбрать_1() Const sPath$ = "d:\Desktop\Реестр договоров.accdb" Dim sConn, oRS As Object 10 sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath 20 On Error GoTo err 30 Set oRS = CreateObject("adodb.recordset") 40 For i = 1 To 5 50 rr = oRS.Open("select * from " & i, sConn) 60 With Sheets(i & "") 70 .UsedRange.Delete 80 With .ListObjects.Add(xlSrcQuery, oRS, , , .[A1]) 90 .Refresh: .Unlink 100 End With 110 End With 120 oRS.Close 130 Next 140 Set oRS = Nothing 150 On Error GoTo 0 160 Exit Sub err: 170 MsgBox "An error #" & err.Number & " (" & err.Description & ") has occurred in procedure выбрать_1 on line " & Erl End Sub