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

Страницы: 1 2 3 След.
Подключение к Oracle через vba windows 64bit, Способы подключения к базам данных
 
Цитата
nilske написал:
скорее всего значение также имеет версия oracle (12 и выше)
да. Версия 19
Подключение к Oracle через vba windows 64bit, Способы подключения к базам данных
 
Добрый день форумчане! Интересует вопрос:

Есть база данных oracle - baza.oracle.com:1527:baza2012(вымышленная). Работа с удаленного рабочего стола. Драйверов Oracle в Источниках odbc 64 нет. MSDAORA на 64 битке не поддерживается. Возможности поставить драйвера нет. Подключение к базе происходит через ПО собственной разработки. Как можно , и можно ли, подключиться к этой базе данных, какими-то стандартными средствами? Windows server 2019. Excel ltsc.
Если подскажете куда копать буду благодарен.
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
Дмитрий(The_Prist) Щербаков, Перечень указателей окон с названием классов и окон вывожу кодом. Класс окна, требуемого элемента, TTabSheet
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
Пользуюсь данным кодом

Код
Option Explicit 
 
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _ 
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long 
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _ 
(ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long 
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _ 
(ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long 
 
Private x As Integer 
 
 'Used a user defined type here rather than Enum so that it works on 97
Private Type winEnum 
    winHandle As Integer 
    winClass As Integer 
    winTitle As Integer 
    winHandleClass As Integer 
    winHandleTitle As Integer 
    winHandleClassTitle As Integer 
End Type 
Dim winOutputType As winEnum 
 
Public Sub GetWindows() 
    x = 0 
    winOutputType.winHandle=0 
    winOutputType.winClass=1 
    winOutputType.winTitle=2 
    winOutputType.winHandleClass=3 
    winOutputType.winHandleTitle=4 
    winOutputType.winHandleClassTitle=5 
     
    GetWinInfo 0&, 0, winOutputType.winHandleClassTitle 
End Sub 
 
 
Private Sub GetWinInfo(hParent As Long, intOffset As Integer, OutputType As Integer) 
     'Sub to recursively obtain window handles, classes and text
     'given a parent window to search
     'Written by Mark Rowlinson
     'www.markrowlinson.co.uk - The Programming Emporium
    Dim hWnd As Long, lngRet As Long, y As Integer 
    Dim strText As String 
    hWnd = FindWindowEx(hParent, 0&, vbNullString, vbNullString) 
    While hWnd <> 0 
        Select Case OutputType 
        Case winOutputType.winClass 
            strText = String$(100, Chr$(0)) 
            lngRet = GetClassName(hWnd, strText, 100) 
            Range("a1").Offset(x, intOffset) = Left$(strText, lngRet) 
        Case winOutputType.winHandle 
            Range("a1").Offset(x, intOffset) = hWnd 
        Case winOutputType.winTitle 
            strText = String$(100, Chr$(0)) 
            lngRet = GetWindowText(hWnd, strText, 100) 
            If lngRet > 0 Then 
                Range("a1").Offset(x, intOffset) = Left$(strText, lngRet) 
            Else 
                Range("a1").Offset(x, intOffset) ="N/A" 
            End If 
        Case winOutputType.winHandleClass 
            Range("a1").Offset(x, intOffset) = hWnd 
            strText = String$(100, Chr$(0)) 
            lngRet = GetClassName(hWnd, strText, 100) 
            Range("a1").Offset(x, intOffset + 1) = Left$(strText, lngRet) 
        Case winOutputType.winHandleTitle 
            Range("a1").Offset(x, intOffset) = hWnd 
            strText = String$(100, Chr$(0)) 
            lngRet = GetWindowText(hWnd, strText, 100) 
            If lngRet > 0 Then 
                Range("a1").Offset(x, intOffset + 1) = Left$(strText, lngRet) 
            Else 
                Range("a1").Offset(x, intOffset + 1) ="N/A" 
            End If 
        Case winOutputType.winHandleClassTitle 
            Range("a1").Offset(x, intOffset) = hWnd 
            strText = String$(100, Chr$(0)) 
            lngRet = GetClassName(hWnd, strText, 100) 
            Range("a1").Offset(x, intOffset + 1) = Left$(strText, lngRet) 
            strText = String$(100, Chr$(0)) 
            lngRet = GetWindowText(hWnd, strText, 100) 
            If lngRet > 0 Then 
                Range("a1").Offset(x, intOffset + 2) = Left$(strText, lngRet) 
            Else 
                Range("a1").Offset(x, intOffset + 2) ="N/A" 
            End If 
        End Select 
         'check for children
        y = x 
        Select Case OutputType 
        Case Is > 4 
            GetWinInfo hWnd, intOffset + 3, OutputType 
        Case Is > 2 
            GetWinInfo hWnd, intOffset + 2, OutputType 
        Case Else 
            GetWinInfo hWnd, intOffset + 1, OutputType 
        End Select 
         'increment by 1 row if no children found
        If y = x Then 
            x = x + 1 
        End If 
         'now get next window
        hWnd = FindWindowEx(hParent, hWnd, vbNullString, vbNullString) 
    Wend 
     
End Sub
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
testuser, удаленка, будь она неладна. К сожалению тут без вариантов. Может есть какие - то варианты либо предположения? Может литературу посоветуете, в которой можно покопаться.
В принципе процедуру автоматизации я выполнил через sendkeys, но хотелось - бы скил наращивать.
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
testuser, к сожалению политика компании не позволяет использовать сторонние приложения. Вытягиваю hwnd средствами vba.
Как можно ещё проверить эту информацию?  
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
Ігор Гончаренко, ирония-это замечательно!  
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
Игорь, просто очень люблю массаж))  
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
Возможно я некорректно написал. Под программой я имел ввиду учетную базу oracle. Там присудствуют вкладки, между которыми мне нужно переключаться.  
Переключение вкладок в программе vba api, Поиск сособа управления вкладками api vba
 
Добрый день! Подскажите как можно переключаться между вкладками в программе посредством Api. Класс элементов TTabSheet. Хендлер я нахожу и пробую через sendmessage и postmessage, с параметром TCM_setcurfocus, ничего не получается.
Также, если есть возможность, сбросьте ссылку, либо название, на литературу vba api.  
Изменено: Jerry.Sweer - 28.12.2022 21:03:23 (Ошибки)
Парсинг сайтов через vba. Без доп. ПО, установки драйверов, Selenium и прочего., Необходим способ парсинга сайтов.
 
Игорь, запустил запрос через fiddler2. Идет перенаправление сначала на js, а потом подгружается graphql. При простом обновлении страницы вылетает 404 ошибка. Приходится выходить и заходить по новой. Т. е. Token меняется каждый раз. Генерирует его js. Есть надежда, что его можно как-то серез cookie получить, но нехватает знаний. Selenium поставить не могу - гадская корпоративная безопасность, ie не грузит элементы вообще, в режиме edge подключиться не могу т. к. способ работает на Windows минимум 20H2 версии. Нашел описание работы через Chrome Devtools Protocol, но как-то коряво работает.

Вопрос в том, что и особо литературы нет по этой теме с адаптацией под vba.


Спасибо за заинтересованность моим вопросом, но думаю, что придётся искать ответы на импортных сайтах.  
Парсинг сайтов через vba. Без доп. ПО, установки драйверов, Selenium и прочего., Необходим способ парсинга сайтов.
 
Это гениально! Как я сам не догадался. Спасибо большое. А можно в репутацию сразу 1000 добавлять?
Сейчас начинаю учить js.  
Парсинг сайтов через vba. Без доп. ПО, установки драйверов, Selenium и прочего., Необходим способ парсинга сайтов.
 
Пробую спарсить сайт через прямой запрос. Может хоть тут кто-то подскажет: для корпоративного сайта, чтоб пройти csrf, нужен token. Поковырялся и нашел, что его генерирует js код. Как можно получить этот token?  
Парсинг сайтов через vba. Без доп. ПО, установки драйверов, Selenium и прочего., Необходим способ парсинга сайтов.
 
Игорь, тут сложность состоит в том, что с сайтов грузится форма graphql. Сайты есть на asp. Net. Там хитрожопая система получения token. У меня нехватает знаний для работы через прямой запрос. Если бы был способ через браузер все было бы легче.Через api я непонимаю как работать с graphql.

Написал, на api, код по принципу autoit., все работает, но долго и нет контроля. Не угадав задержку получается фигня. Нужно сидеть и мониторить, чтоб не сбилось.  
Парсинг сайтов через vba. Без доп. ПО, установки драйверов, Selenium и прочего., Необходим способ парсинга сайтов.
 
whateverlover, да, собственно, нет какого-то конкретного. Меня устраивал ie, пока он прогружал все. Какой-нибудь похожий способ на него или Selenium, но без установок, корректировок реестра... Нашел способ через пользовательские классы, но нужно ковырять реестр. Это позволит использовать edge вместо ie.  
Парсинг сайтов через vba. Без доп. ПО, установки драйверов, Selenium и прочего., Необходим способ парсинга сайтов.
 
Добрый день! Вопрос к спецам: существует ли какой-нибудь способ парсинга сайтов без установки ПО и прочей требухи? - есть корпоратиная безопасность и сопутствующий, с этим, геморрой, Internet Explorer не грузит многие элементы сайтов, использование прямых запросов требует определённых знаний, а эти знания не консолидированы в доступную, для чайников, структуру с применением в vba.( интересует сайт с авторизацией).
Обычные сайты парсил с помощью туториала, пользователя данного форума с Дейлом на аватарке(спасибо ему), на его канале.

Перерыл большой обьем информации и туториалы есть либо по Selenium, либо по ie, либо, очень скудно, через msxml2 и подобные.

Подходит только vba т. к. Excel стоит на каждом "утюге".

Спасибо.
Сохранение web страницы в htm или pdf vba, Необходим способ сохранения страницы в файл
 
Неужели вариантов нет?  
Сохранение web страницы в htm или pdf vba, Необходим способ сохранения страницы в файл
 
Есть ли способ сохранения HTML файла, полученного через парсинг, с аутентификацией путем ввода логина и пароля, средствами vba, в формате pdf или htm?
Через filesystemobject.createtxtfile - пустая страница.
Urldownloadtofile - вообще ничего не сохраняет.
Sendkeys и аналоги - не подходят.


Буду рад любой помощи.  
Как получить последнего владельца по дате
 
Если допускается, то возможно отсортировать по дате по убыванию, а потом ВПР-ом прогнать.
Формула суммы чисел в текстовой строке
 
Друзья! Спасибо всем большое.  
Формула суммы чисел в текстовой строке
 
Доброго времени суток. Прошу помощи.
Необходимо суммировать числа в строке где числа разделены запятой.

Пример:
было: 1,21,75,100,3fxuvvcxxcjcvvvffbccg
требуется: 200

Не цифр, а чисел.

Заранее спасибо!
Поиск максимального/минимального значения массива если тип данных - "Дата"
 
Цитата
New написал:
Сколько строк в массиве? 1 млн ?
Если простыми словами:
Есть реестр проданных товаров, в разрезе дат и накладных. Два и более млн строк. Находятся на разных листах т. к. ексель пока не тянет более 1млн с копейками строк. Есть реестр изменения цен. Там еще больше строк. Необходимо вывести цену действовавшую на момент отгрузки накладной.

Пользуюсь формулой массива и делю на , но загрузка процессора на 99% беспокоит ИТ персонал.  
Поиск максимального/минимального значения массива если тип данных - "Дата"
 
Цитата
Юрий М написал:
зачем брать данные в массив?
У меня два массива дат и третий - пустой массив. Даты из первого массива сверяются с датами другого массива по условию. Если условие выполняется, то дата из второго массива попадает в третий(пустой массив). Затем необходимо из данных третьего массива выбрать максимальное значение.

С числами вопросов не возникает, а даты напрочь не хотят восприниматься. Я привык, что в экселе дата - это число и его можно вычесть или суммировать, но в vba другая логика.

Если альтернативы нет, то ограничусь предложением пользователя New. Буду пить чай, пока программа будет трудиться.

В интернете информация есть, но задачи отличаются и как правило используют Range.

Файл не могу приложить т. к. ПК под рукой нет.  
Поиск максимального/минимального значения массива если тип данных - "Дата"
 
Цитата
Юрий М написал:
А что смешного сказал Игорь?
Меня повеселило про счеты. Странно что на аватаре у Игоря подруга Аквамена. Классный фильм. Смотрел его в кинотеатре.
Интересный диалог получается. Попросил помощи в вопросе vba, а тут и повеселили и посмеялись. Спасибо Вам добрые люди.  
Поиск максимального/минимального значения массива если тип данных - "Дата"
 
Цитата
New написал:
бегите циклом по массиву A()
Спасибо за ответ. Я рассматривал этот вариант как последний. Преобразование между типами данных очень увеличивает время работы программы. Я сверяю по очереди два массива дат, при этом размеры массивов достигают миллиона значений.
Если нет другого вариана, то придётся выкручиваться так.
Поиск максимального/минимального значения массива если тип данных - "Дата"
 
Я уже соскучился по остротам местных "гуру". Спасибо за тонкий юмор. Посмеялся от души. Аж слеза потекла. Нужно предложить резидентам Камеди Клаб зайти на форум и поучиться у профессионалов.  
Поиск максимального/минимального значения массива если тип данных - "Дата"
 
Доброго времени суток. Помогите разобраться в следующем вопросе:

- есть массив А(). Тип данных массива - "Дата". Необходимо найти максимальную дату по определенному условию (больше или меньше, сверяя сегодняшнюю дату с каждой датой массива). Использовал "Application.WorksheetFunction.Max(А())" - не работает. Поискал информацию в интернете и выяснилось, что vba таким образом работает только с цифрами.
Как можно победить упрямую машину, заставить ее быть благоразумной и начать сотрудничать?

Спасибо заранее.
При изменении размера массива цикл доходит только до конца первоначального массива
 
Цитата
Jack Famous написал:
Вот теперь я иногда захожу в тему поржать, т.к. ему ответили на всё возможное, но это вообще ничего не изменило  
Рад что смог повеселить))) Смех продлевает жизнь.

Цитата
RAN написал:
Цикл For .. To.. работает "осюда" и до "забора". И если "отсюда" менять можно, то "забор" ставится один раз при входе в цикл, и дальше не двигается. А вот массив вполне себе растягивается.
Спасибо за пояснение. Дело в том, что переменная (w) при наведении показывает число с учетом добавленных строк, но не учитывается в работе кода. Меня это ввело в ступор. Теперь понятно. Попробую через "Do". Освоил только For, думал хватит, придется развиваться дальше.

Всем неравнодушным спасибо.
При изменении размера массива цикл доходит только до конца первоначального массива
 
Цитата
Jack Famous написал:
укажите верхнюю границу 15,
Размер таблицы изменяется от 100 тыс. строк до 1 млн.

Не могу понять почему UBound, при пошаговой обработке, показывает то число что требуется, а заканчивает первоначально определенным...
При изменении размера массива цикл доходит только до конца первоначального массива
 
Цитата
vikttur написал:
Не объявлять новый, взять в существующий массив больший диапазон  с листа...
Через ReDim перезаполняю массив, с учетом изменившегося кол-ва строк, но код упорно заканчивает на последнем значении определенного в начале массива.

Должно же быть логичное решение чем просто "взять с запасом".
Изменено: Jerry.Sweer - 29.12.2020 10:25:35 (Додумал)
Страницы: 1 2 3 След.
Наверх