powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Из SQL в EXCEL макрос в цикле или как?
3 сообщений из 3, страница 1 из 1
Из SQL в EXCEL макрос в цикле или как?
    #35125776
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Sub CEL()

Dim i As Integer
Dim strSql1 As String
Dim strSql2 As String
Dim stroka As String

stroka = ActiveCell

strSql1 = "SELECT Count(*)"
strSql1 = strSql1 & " FROM Reg R"
strSql1 = strSql1 & " INNER join FORM   ON R.FORMID=FORM.FORMID"

strSql1 = strSql1 & " WHERE"
strSql1 = strSql1 & " AND FORM.Name  Like '" & "%" & stroka & "%" & "'"

sqlstring1 = strSql1

connstring = _
Array(Array("ODBC;DRIVER=SQL Server;SERVER=SQL;DATABASE=Data;Trusted_Connection=Ye"), Array("s"))
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
        Destination:=ActiveCell.Offset( 0 ,  3 ), Sql:=sqlstring1)

      .FieldNames = False
      .BackgroundQuery = False
      .RefreshStyle = xlOverwriteCells
      .Refresh BackgroundQuery:=False    
End With
End Sub





















...
Рейтинг: 0 / 0
Из SQL в EXCEL макрос в цикле или как?
    #35125783
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вышеприведенном коде из активной ячейки берется фрагмент слова и подставляется в SQL запрос,
который подсчитывает какое количество записей содержит данный фрагмент и результат вставляется на три ячейки правее от активной . Как сделать чтобы не менять активную ячейку и запускать каждый раз макрос, а сделать это в цикле.
...
Рейтинг: 0 / 0
Из SQL в EXCEL макрос в цикле или как?
    #35128041
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в меню Tools далее References
надо подключить Microsoft ActiveX Data Objects 2.8 Library
Код: 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.
Sub CEL()
    Dim strSql As String
    Dim server As String:   server = "SQL"
    Dim catal1 As String:   catal1 = "Data"
    Dim UserId As String:   UserId = "sa"
    Dim Passwo As String:   Passwo = ""

    Dim con As ADODB.Connection:    Set con = New ADODB.Connection
    Dim rst As ADODB.Recordset:     Set rst = New ADODB.Recordset

    con.Open "Provider=SQLOLEDB;Persist Security Info=False;Password=" & Passwo & ";User ID=" & UserId & ";Initial Catalog=" & catal1 & ";Data Source=" & server

    strSql = "SELECT Count(*)" & _
            " FROM Reg " & _
            " INNER join FORM ON R.FORMID=FORM.FORMID" & _
            " WHERE FORM.Name Like '" & "%"
            
    Dim stroka As Range
    Dim stroki As Range
    Set stroki = ThisWorkbook.Worksheets("Лист1").Range("A1", "A20") ' перебор ячеек, вместо ActiveCell
 
    For Each stroka In stroki
        If Len(stroka.Value) >  0  Then
               rst.Open strSql & stroka & "%" & "'", con, , , adCmdText
               ThisWorkbook.Worksheets("Лист1").Range(stroka.Offset(,  3 ).Address).CopyFromRecordset rst
               rst.Close
        End If
    Next
    
    Set rst = Nothing
    con.Close
    Set con = Nothing
    
End Sub
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Из SQL в EXCEL макрос в цикле или как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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