Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 След.
VBA read Sharepoint list
 
Chat GPT зарешал вопрос.
Код
Sub GetSharepointData()
    Dim siteUrl As String
    Dim listName As String
    Dim query As String
    Dim conn As Object
    Dim rs As Object
 
    siteUrl = "https://sharepoint.com/sites/mysite"
    listName = "toolusers2"
     query = "select  * from toolusers2"
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=1;RetrieveIds=Yes; DATABASE=" & siteUrl & ";LIST=" & listName & ";"
    

    Set rs = CreateObject("ADODB.Recordset")

    rs.Open query, conn
    If Not rs.EOF Then

            Range("A1").CopyFromRecordset rs
    End If
    rs.Close
    conn.Close

    Set rs = Nothing
    Set conn = Nothing
End Sub
VBA read Sharepoint list
 
Цитата
написал:
Поймите, это не стеб, а попытка разобраться.
Понимаю, просто что далее с рекордсетом делать я знаю, поетому не ставил в условие что б не перегружать вопросами.  
VBA read Sharepoint list
 
Всем привет, записал рекордером макрос чтоб  получать данные с Sharepoint List.
Помогите "очистить" код, убрать всякие привязки к книге и листу, и чтоб данные записивал в рекордсет.
А может кто то уже имеет пример рабочего кода :)
Код
Sub Macro3()
 
    ActiveWorkbook.Queries.Add Name:="toolusers2 (2)", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = SharePoint.Tables(""https://sharepoint.com/sites/mysite"", [Implementation=""2.0"", ViewMode=""Default""])," & Chr(13) & "" & Chr(10) & "    #""we7d5c52-4e98-4ttt5ttt333-e070b25755"" = Source{[Id=""we7d5c52-4e98-4ttt5ttt333-e070b25755""]}[Items]" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""we7d5c52-4e98-4ttt5ttt333-e070b25755"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""toolusers2"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).queryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [toolusers2]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "toolusers2_2"
        .Refresh BackgroundQuery:=False
    End With
End Sub
Изменено: Евгений Квитницкий - 22.10.2023 21:41:55
Ошибка запроса через ADODB (получаю recordset из MS SQL сервера), Recordset to array (Empty)
 
Спасибо за помощь, дружище.
Код
       cast(mseg.[CPUTM_MKPF_SIMP_TM]AS nvarchar)[Time of entry], 
Ошибка запроса через ADODB (получаю recordset из MS SQL сервера), Recordset to array (Empty)
 
Преобразовывать я так понимаю надо  на стороне SQL?
Ошибка запроса через ADODB (получаю recordset из MS SQL сервера), Recordset to array (Empty)
 
Цитата
sokol92 написал:
Можно найти это поле, например, методом "половинного деления", сокращая список выбираемых полей.
Спасибо Владимир, выяснил причину , время вот эту часть (mseg.[CPUTM_MKPF_SIMP_TM] [Time of entry]) , из за нее  ошибка..  
Ошибка запроса через ADODB (получаю recordset из MS SQL сервера), Recordset to array (Empty)
 
ВОт что запос возвращает (MS SQL Studio), что моежт ему не нравится ?  
Изменено: Евгений Квитницкий - 14.11.2020 14:56:59
Ошибка запроса через ADODB (получаю recordset из MS SQL сервера), Recordset to array (Empty)
 
Доброго вренени суток уважаемые.
запросом через ADODB получаю  recordset из MS SQL  сервера, далее при передаче данных из рекордсета в массив получаю вот это - <Variable uses an Automation type not supported in Visual Basic>,  вот на этотм этапе imprep = rs.GetRows, рекордсет не пустой однозначно,  записи в нем есть.
грешу на сам SQL запрос, так как это не превый раз,  у меня  с десяток подобных запросов работают как часы .


Код
Function imprep(x)

    Set conn = New ADODB.connection
    Set rs = New ADODB.Recordset
    
sSql = "SELECT mseg.[EBELN] [PO],marm.[EAN11] [EAN IT],lips.[CHARG] [Lot Number],format(mch1.[ERSDA_SIMP_DT],'yyyy-MM-dd') [Production Date],format(mch1.[VFDAT_SIMP_DT],'yyyy-MM-dd') [Expiration Date], CASE WHEN mseg.[BWART]='102' " & _
"THEN cast(concat('-',lips.[LFIMG]*marm.[UMREN]) AS numeric) else lips.[LFIMG]*marm.[UMREN] END [IT QTY],mkpf.[BKTXT] [Customs Declaration Number],mkpf.[BKTXT] [Import Date],( SELECT [LANDA] FROM LIB_F6P_RTP.sap.[T005] t005 WHERE( " & _
"t005.[MANDT]='430') AND (t005.[LAND1]=lfa1.[LAND1])) [Country Code Import From],( SELECT [LANDA] FROM LIB_F6P_RTP.sap.[T005] t005 WHERE(t005.[MANDT]='430') AND(t005.[LAND1]=marc.[HERKL])) [Country Code Of Origin],'zzz' [sep],mseg. " & _
"[BUDAT_MKPF_SIMP_DT] [Posting date],mseg.[CPUTM_MKPF_SIMP_TM] [Time of entry],mseg.[MBLNR] [Material Document],mseg.[ERFME] [Entry UOM],mseg.[MEINS][Base UOM],marm.[UMREZ] [UMREZ Numerator],marm.[UMREN] [UMREN Denominator], " & _
"mseg.[BWART] [mvmtyp],ekko.[UNSEZ] [Delivery],mseg.[XBLNR_MKPF] [Invoice],mseg.[MATNR] [MSEG matnr],lips.[LFIMG] [LIPS QTY] FROM LIB_F6P_RTP.sap.[MSEG] mseg INNER JOIN LIB_F6P_RTP.sap.[MKPF] mkpf ON mkpf.[MANDT]=mseg.[MANDT] AND mkpf. " & _
"[MBLNR]=mseg.[MBLNR] INNER JOIN LIB_F6P_RTP.sap.[MARM] marm ON marm.[MANDT]=mkpf.[MANDT] AND marm.[MANDT]=mseg.[MANDT] AND marm.[MATNR]=mseg.[MATNR] INNER JOIN LIB_F6P_RTP.sap.[MARC] marc ON marc.[MANDT]=marm.[MANDT] AND marc.[WERKS]= " & _
"mseg.[WERKS] AND marc.[MATNR]=marm.[MATNR] AND mseg.[MATNR]=marc.[MATNR] INNER JOIN LIB_F6P_RTP.sap.[MARA] mara ON mara.[MANDT]=marc.[MANDT] AND mara.[MATNR]=mseg.[MATNR] AND marm.[MANDT]=mara.[MANDT] AND marc.[MATNR]=mara.[MATNR] AND " & _
"marm.[MATNR]=mara.[MATNR] INNER JOIN LIB_F6P_RTP.sap.[LFA1] lfa1 ON lfa1.[MANDT]=mseg.[MANDT] AND lfa1.[LIFNR]=mseg.[LIFNR] AND mara.[MANDT]=lfa1.[MANDT] AND marc.[MANDT]=lfa1.[MANDT] AND marm.[MANDT]=lfa1.[MANDT] AND mkpf. " & _
"[MANDT]=lfa1.[MANDT] INNER JOIN LIB_F6P_RTP.sap.[T005] t005 ON t005.[MANDT]=lfa1.[MANDT] AND t005.[LAND1]=lfa1.[LAND1] INNER JOIN LIB_F6P_RTP.sap.[EKKO] ekko ON ekko.[MANDT]=mseg.[MANDT] AND ekko.[EBELN]=mseg.[EBELN] INNER JOIN " & _
"LIB_F6P_RTP.sap.[LIPS] lips ON lips.[MANDT]=mseg.[MANDT] AND lips.[VBELN]=ekko.[UNSEZ] AND lips.[MATNR]=mseg.[MATNR] AND mara.[MANDT]=lips.[MANDT] AND mara.[MATNR]=lips.[MATNR] AND marc.[MANDT]=lips.[MANDT] AND marc.[MATNR]=lips. " & _
"[MATNR] INNER JOIN LIB_F6P_RTP.sap.[MCH1] mch1 ON mch1.[MANDT] COLLATE SQL_Latin1_General_CP1_CI_AS=mseg.[MANDT] AND mch1.[MANDT] COLLATE SQL_Latin1_General_CP1_CI_AS=mseg.[MANDT] AND mch1.[MATNR] COLLATE " & _
"SQL_Latin1_General_CP1_CI_AS=lips.[MATNR] AND mch1.[CHARG] COLLATE SQL_Latin1_General_CP1_CI_AS=lips.[CHARG] WHERE(mseg.[MANDT]='430') AND (mseg.[BWART] IN('101','102')) AND (mseg.[WERKS]='2751') AND (marm.[MEINH]='IT') AND " & _
"(mara.[MTART]='FERT') AND mseg.[MATNR] IN " & x & " AND (lips.[CHARG]<>'') AND (mseg.[BUDAT_MKPF]>='20201001' AND mseg.[BUDAT_MKPF]<='20201101') ORDER BY [Posting date], [Time of entry];"

  conn.Open ConnStr
    Set rs = conn.Execute(sSql)

    If Not rs.EOF Then
        imprep = rs.GetRows ' Здесь ошибка 
        rs.Close
    Else
        MsgBox "Error: No Records  returned.", vbCritical
        imprep = Empty
    End If
    If CBool(conn.State And adStateOpen) Then conn.Close
    Set conn = Nothing
    Set rs = Nothing
    
End Function

update:
подсунул другой запрос  - все работае, значит все таки загвоздка в самом запросе ,что то в возвращенном результате не нравится екселю,  и не хочет его в масссив переносить
UserForm имя нажатой кнопки
 
Nordheim, sokol92, спасибо
UserForm имя нажатой кнопки
 
Цитата
БМВ написал:
Если использовать Sub baton1_Click, Sub baton1_Click
спасибо, тоже об этом подумал,  кнопок просто 10 штук, думадл можно обойтись как то по другому :)
UserForm имя нажатой кнопки
 
Доброго времени суток, господа форумчане.
Вопрос такой, есть форма, на кторой N кнопок.
Задача в том, что бы при клике на кнопку, имя этой кнопки    бралось в переменную и далее выполняло некий макрос с этой переменной.
Суть в том, что бы не писать для каждой кнопки один и тот же макрос

З.Ы. скорее всего не верно сформулировал вопрос.
 должно быть что то типа (которое конечно де не работает)
Код
Private Sub ActiveControl.Name_Click()
&#39;bla bla vla
End Sub

 
VBA передать массив из sub в форму
 
Михаил С., Спасибо, работает.
По сути я так тожде делал, но проверял видимость массива просто в Wiev-->Locals Window  и там он не отображается, но тем не менее работает.
Спасибо.
VBA передать массив из sub в форму
 
Добого времени суток уважаемые форумчане.
Можно  ли как то передать массив в форму из sub ну или при инициализации формы  или еще как то.
Гугл читал, не помогло(или не там читал).
Изменено: Евгений Квитницкий - 24.11.2018 11:20:03
VBA Имя массива из ячейки
 

Господа, всем спасибо за дискуссию, которая почему то похожа на анекдот:

Чем отличаются американский, еврейский и русский форумы.

На американсцком задаешь вопрос - получаешь ответ

На еврейском задаешь вопрос - тебя спрашивают в ответ
На русском задаешь вопрос и тебе на 30 страницах обсуждения объясняют какой ты мудак

Дальнейшее обсуждесчитаю нецелесообразным.  
VBA Имя массива из ячейки
 
Цитата
vikttur написал: Как - что делать? множить, а потом гордо писать - у меня есть 251 массив!
вовсе нет, просто нужно потом делать вычисления со всех массивов, и выгружать результат на лист.
Или Вы считаете что это глупо?

Цитата
БМВ написал:   еще вариант,  забыть про имена оперировать индексами  и делать массив массивов
Спасибо, хорошая мысль.  
VBA Имя массива из ячейки
 
Доброго времени суток,
подскажите плз, как завернуть следующее:
необходимо выгрузить данные с сервера в массивы, но что бы не писать кучу кода - сделать это циклом и  соответсвенно присвоить имена массивам из ячейки.
Код
Sub sqldata()

    Set sq = ThisWorkbook.Worksheets("SQL")

    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
     Dim sqlrs As ADODB.Recordset
    Set sqlrs = New ADODB.Recordset
   cn.ConnectionString = "Provider=MSDASQL.1;Password=live3;Persist Security Info=True;User ID=live3_ro;Data Source=ord.rtcis"
    cn.Mode = adModeRead
    cn.Open
        i = 1
     While sq.Cells(i, 2) <> ""
    SqlString = sq.Cells(i, 2)
      sqlrs.Open SqlString, cn
      Dim arr()
      arr = sqlrs.GetRows  'Вот здесь  нужно создать масив с именем изячейки C,i
      'Stop
      sqlrs.Close
    i = i + 1
    Wend
End Sub
Суммировать c нескольких листов с условиями
 
Цитата
Дмитрий Щербаков написал:
Дмитрий Щербаков
Спасибо.
Суммировать c нескольких листов с условиями
 
Цитата
Дмитрий Щербаков написал:
так и покажите в этом примере КАК нужно
как то так
Суммировать c нескольких листов с условиями
 
мне
Пробовал, не хочет работать..
в моем примере мне нужно немного по другому, искать не в строках а в колонках совпадения, и колонки могуд быть в разном порядке(но всегда в одном и том же диапазоне)
Суммировать c нескольких листов с условиями
 
Всем привет.
продскажите пожалуйста, как "завернуть" суммесли, что бы работало с несколькими листами ?
количество листов может менятся. названия от 1 до 31 (колво дней.)
Применение функций Excel к динамическим диапазонам
 
Уважаемый Ігор Гончаренко, не могли бы Вы посмотреть, что может быть не так ?  
Применение функций Excel к динамическим диапазонам
 
Цитата
Ігор Гончаренко написал:
см.вложение
Увы, почему то  абсолютно разные (невсеняемые) данные показывает, в сравнении с  "жостким" диапазоном данных,   SD1   - Ваш вариант, SD - просто формула за один месяц.
Изменено: Евгений Квитницкий - 13.11.2017 21:51:54
Применение функций Excel к динамическим диапазонам
 
Доброго дня суток уважаемые.
подскажите пожалуйста, как правильнго реальзовать функцию СТАНДОТКЛОН  по месяцам из общей таблицы,  что бы учитывался месяц ?
пример во вложени.

З.Ы. Список вводных данных - динамический.
Изменено: Евгений Квитницкий - 13.11.2017 20:10:40
Конвертировать таблицу Excel в XML, Конвертировать таблицу Excel в XML
 
panix1111,да спасибо, я все исправил.
Конвертировать таблицу Excel в XML, Конвертировать таблицу Excel в XML
 
panix1111, Спасибо большое, самое оно )
Конвертировать таблицу Excel в XML, Конвертировать таблицу Excel в XML
 
Доброго времени суток уважаемые форумчане.
есть простенький макрос, который конвертить данные из таблицы в xml, и все бы хорошо, но в результирующий файл дописывает лишние  кавычки ", если же смотреть в Debug.Print   - там все ок.
в чем может быть проблемка ?
Сгрупировать по каждой 5й минуте часа
 
Всем большое спасибо, то что надо :)
Сгрупировать по каждой 5й минуте часа
 
Добрый день уважаемые флрумчане.
Подскажите пожалуйста, можно ли как то сгруппировать данные по каждой 5й минуте часа, то есть  01:05, 01:10, 01:15.....01:55, 02:00.....?
Проверка на несовпадение
 
Спасибо, вопрос решен.
Проверка на несовпадение
 
Доброго времени суток господа, подскажите плз, как средствами VBA сделать проверку на несовпадение в пределах одного и того же LoadID ?
Например если в пределах одного LoadID один и тот де Item Number - то вывести 0,в птотивном случае если хотя бы один Item Number отличается - 1 против каждой строки в пределах LoadID, то ес тьотметить что тако то LoadID - "кривой".
Load IDItem Numberres
00354131491003624868802387200
00354131491003624868802387200
00354131491003624882802387201
00354131491003624882802387211
00354131491003624882802387201
00354131491003624899802387200
00354131491003624905802387200
Изменено: Евгений Квитницкий - 19.08.2016 14:51:06
Страницы: 1 2 3 4 5 6 7 8 След.
Наверх