powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA + Excel+ SQL
23 сообщений из 23, страница 1 из 1
VBA + Excel+ SQL
    #34757615
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как выгружать полученные данные в открытый лист, то есть есть лист на нем кнопка при нажатии на которую идет выгрузка данных полученных select,код следующий
Dim str_p As String
str_p = Лист2.Cells(2, "H") + Лист2.Cells(3, "H") 'считываем путь к базе
Set cn = New ADODB.Connection
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = str_p
cn.Open
Dim rs As New ADODB.Recordset
rs.Source = "SELECT SUM(S1), SUM(S2) FROM (select sum(dp.akt_rasx) As S1 ,sum(dp.summa) As S2 from d_point dp where dp.k_Month = 7 And dp.Year = 2007 And (dp.k_f46 = 1 Or dp.k_f46 = 27)Union ALL select sum(dps.rasx_a) As S1,sum(dps.summa) As S2 from d_dopsum dps where dps.k_Month = 7 And dps.Year = 2007 And (dps.k_f46 = 1 Or dps.k_f46 = 27)) T1"
Set rs.ActiveConnection = cn
rs.Open


сюда вставить выгрузку в открытый лист
помогите кто знает........
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757715
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Range("A1").CopyFromRecordset rs


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757764
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot
Код: plaintext
Range("A1").CopyFromRecordset rs


I Have Nine Lives You Have One Only
THINK!

не поняла, и не работает
Поясню, в ячейку C8-выгрузить sum(s1)
а в ячейку С9-sum(s2)
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757766
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?????
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757853
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему то число не появляется???
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757864
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если так, то

Код: plaintext
1.
Range("C8").Value = rs.Fields( 1 ).value
Range("C9").Value = rs.Fields( 2 ).value

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757873
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKotну если так, то

Код: plaintext
1.
Range("C8").Value = rs.Fields( 1 ).value
Range("C9").Value = rs.Fields( 2 ).value

I Have Nine Lives You Have One Only
THINK!

ничего...
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757877
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
((((
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757883
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как определить есть ли вообще в rs.Source что нить???
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757907
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
'если нет конца рекордсета
If Not rs.Eof Then
...


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34757980
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чего то не хватает...
так как не работает
если есть пример, или какие нить догадки, буду рада
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34758153
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы сначала проверьте запрос в Акцесе
будут данные возвращатся?


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34758180
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возвращаются
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34758695
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Klera, фотку не хотите показать? :)
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34758788
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kleraвозвращаются
ну если возвращаются, тогда так
в коде после rs.Open пропишите

Код: plaintext
1.
MsgBox rs.Field( 1 ).Value
MsgBox rs.Field( 2 ).Value

будут появлятся сообщения?


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34760035
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim str_p As String

str_p = Лист2.Cells(2, "H") + Лист2.Cells(3, "H") 'считываем путь к базе

Set cn = New ADODB.Connection
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = str_p
cn.Open

Dim rs As New ADODB.Recordset
rs.Source = "SELECT SUM(S1) as bar , SUM(S2) " + _
"FROM (select sum(dp.akt_rasx) As S1 ,sum(dp.summa) As S2 " + _
"from d_point dp " + _
"where dp.k_Month = 7 And dp.Year = 2007 " + _
"And (dp.k_f46 = 1 Or dp.k_f46 = 27)" + _
"Union ALL " + _
"select sum(dps.rasx_a) As S1,sum(dps.summa) As S2 " + _
"from d_dopsum dps where dps.k_Month = 7 And dps.Year = 2007 And (dps.k_f46 = 1 Or dps.k_f46 = 27)) T1"

Set rs.ActiveConnection = cn
rs.Open


'если нет конца рекордсета
If Not rs.EOF Then
MsgBox (rs.Fields(0).Name)

' Range("C8").Value = rs.Fields("bar").Value
Else
' Range("C8").Value = 0
MsgBox (1)
End If

rs.Close
Set rs = Nothing


(rs.Fields(0).Name)-возвращает имя bar,а (rs.Fields(0).value) ничего не возвращает почему то..
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34760490
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну прям не знаю

тогда замените строку запроса на такую
Код: plaintext
Select  1  As [bar],  2  As [Field2]

тогда хоть значения появятся?

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34760681
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я поняла в чем дело, но не знаю как исправить-в общем дело в подключенных библиотеках, какие надо подключать библиотеки?
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34760791
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Microsoft ActiveX Data Objects x.xx Library

P.S. и как же у вас это работало без подключенных библиотек?

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34760853
Klera
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть у кого нить работающий проект, не могу разобраться, помогите плис, прикрепите....
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34761025
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так попробуй

Код: plaintext
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.
Dim str_p As String
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String

str_p = Лист2.Cells( 2 , "H") + Лист2.Cells( 3 , "H") 'считываем путь к базе


cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.ConnectionString = str_p
cn.Open

strSQL = "SELECT SUM(S1) as bar , SUM(S2) " & _
"FROM (select sum(dp.akt_rasx) As S1 ,sum(dp.summa) As S2 " + _
"from d_point dp " & _
"where dp.k_Month = 7 And dp.Year = 2007 " & _
"And (dp.k_f46 = 1 Or dp.k_f46 = 27)" & _
"Union ALL " & _
"select sum(dps.rasx_a) As S1,sum(dps.summa) As S2 " & _
"from d_dopsum dps where dps.k_Month = 7 And dps.Year = 2007 And (dps.k_f46 = 1 Or dps.k_f46 = 27)) T1"


With rs
Set .ActiveConnection = cn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.Source = strSQL
.Open
If .RecordCount >  0  Then
    .MoveFirst
    Do Until .EOF
        Debug.Print .Fields("bar").Value
        .MoveNext
    Loop
Else
    MsgBox "Нет записей"
End If
.Close
cn.Close
End With
Set rs = Nothing
Set cn = Nothing
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34767564
Nitrolis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще предложение...
попробовать в коде заменить строку:
Код: plaintext
rs.Source = "SELECT SUM(S1) as bar , SUM(S2) " + _
на
Код: plaintext
rs.Source = "SELECT SUM(S1) as bar , SUM(S2) as S2" + _

и строку:
Код: plaintext
"select sum(dps.rasx_a) As S1,sum(dps.summa) As S2 " + _
на
Код: plaintext
"select sum(dps.rasx_a) As bar,sum(dps.summa) As S2 " + _
...
Рейтинг: 0 / 0
VBA + Excel+ SQL
    #34919090
Pr0v0dn1k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по-моему нужно

вместо:
Код: plaintext
cn.ConnectionString = str_p

написать:
Код: plaintext
cn.ConnectionString = "data source=" & str_p
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA + Excel+ SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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