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

Страницы: 1 2 След.
Подключение к Базе данных Oracle из Excel с помощью VBA
 
И так с проблемой провайдера я разобрался
Криво стояли драйвера oracle
Последний раз когда я их устанавливал я качал их вот отсюда http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
скачивал вот этот файл:
64-bit ODAC 12.2c Release 1 (12.2.0.1.1) for Windows x64
[Released August 3, 2018]
ODAC122011_x64.zip - 406 MB (426,617,132 bytes)
В этом архиве есть нормальный setup

Правильная строка подключения выглядит вот так:
Код
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=OraOLEDB.Oracle;Data Source=192.168.200.253:1521/XE;User ID=***;Password=***"

что касается кодировки при использовании DSN вместо Provider, то мне так и не удалось разобраться. Но на мой взгляд способ подключения через Provider более правильный.

Спасибо всем за помощь.

Изменено: mrzv - 03.09.2018 15:30:00
Подключение к Базе данных Oracle из Excel с помощью VBA
 
Вот такой код, я получаю нужную мне информацию, но кириллица вопросами. Что я делаю не так?

Код
Sub ImpOracle()
Set cn = CreateObject("ADODB.Connection")
       cn.Open "ODBC;DBQ=192.168.200.253:1521/XE;UID=orga;PWD=a546;DSN=ALGO"
'========================================================================================
sSql = "select partner_short_name, trunc(OUTCOME_DATE_SALE) d, sum(roh.sum_w_nds) s,count(1) h from t_partner p, T_REMOTE_ROZNICA_OUTCOME_HEAD roh where ROH.REMOTE_PARTNER_ID = p.PARTNER_ID and trunc(OUTCOME_DATE_SALE) between sysdate - 3 and sysdate group by partner_short_name, trunc(OUTCOME_DATE_SALE)"

Set Rs = GetRs(sSql, cn)
Sheets("Лист1").[a1].CopyFromRecordset Rs
Rs.Close
Set Rs = Nothing
End Sub

Function GetRs(sstr, cn)
Set rstdata = CreateObject("ADODB.Recordset")
    rstdata.Open sstr, cn
    Set GetRs = rstdata
Set rstdata = Nothing
End Function

весь код взял из этой статьи https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=60251

Подключение к Базе данных Oracle из Excel с помощью VBA
 
Спасибо за совет
Цитата
sokol92 написал:
через Меню/Данные/Из других источников/Из мастера подключений/Дополнительно (путь дан для Excel 2016)
Я создал подключение ODBC DNS посмотрел там строку подключения . Вставил её в свой код и все получилось. Только вот русские буквы вопросами...
Код
cn.Open "ODBC;DBQ=192.168.200.253:1521/XE;UID=orga;PWD=a546;DSN=ALGO"
Подключение к Базе данных Oracle из Excel с помощью VBA
 
Вот такую ошибку мне выдает на строке подключения
Код
Set cn = CreateObject("ADODB.Connection")
       cn.Open "Provider=ORAOLEDB.ORACLE;Data Source=192.168.200.253:1521/xe;Password=org;User ID=pqw2"
Run-time error 3706
Не удается найти указанный поставщик.Вероятно, он установлен неправильно.
Изменено: mrzv - 31.08.2018 13:20:59
Подключение к Базе данных Oracle из Excel с помощью VBA
 
Цитата
ivanok_v2 написал:
если вы подключаетсь через другое ПО,  значить нужные драйвера уже есть.
Как тогда определить какой драйвер мне нужно использовать?
Подключение к Базе данных Oracle из Excel с помощью VBA
 
Здравствуйте, раньше не имел дела с подключением к БД. Прошу помочь.
На просторах нашего форума нашел вот такую строку подключения
Код
Set cn = CreateObject("ADODB.Connection")
       cn.Open "Provider=MSDAORA.1;Data Source=***;Password=***;User ID=***"
но как настроить под свой лад не пойму. На счет Data Source=***;Password=***;User ID=*** все понятно
А вот Provider какой нужно использовать?
Я установил драйвер с сайта oracl "Oracle in instantclient_18_3" имя его "SQORA32.DLL".  
Суммирование значений из текста с разделителем, выделение значений из текста и их обработка
 
Мой вариант, пусть и колхоз но работает
Код
Sub штуки()
Cells.Replace What:=" шт", Replacement:="шт"
Cells.Replace What:="ШТ", Replacement:="шт"
Dim arr() As Integer
lr = Cells(Rows.Count, 1).End(xlUp).Row

For c = 1 To lr
ReDim arr(1 To 1)
Z = 3
S = 1
шт = 1
i = 1

Do While шт < Len(Cells(c, 1)) - 3

ReDim Preserve arr(1 To i)
шт = InStr(шт + 1, Cells(c, 1), "шт")

If шт = 0 Then Exit Do

On Error Resume Next ' обработчик Run-time ошибок
ошиб:
X = Replace(Mid(Cells(c, 1), шт - Z, Z), "-", "")
X = Mid(X, InStr(1, X, " ") + 1, 3)
arr(i) = X

If Err.Number = 13 Then
Z = Z - S
S = S + S
On Error GoTo 0
GoTo ошиб
End If

Z = 3
S = 1

i = i + 1

Loop
 
Cells(c, 2) = WorksheetFunction.Sum(arr())
Next c
End Sub
Суммирование значений из текста с разделителем, выделение значений из текста и их обработка
 
И еще вопрос может ли быть количество больше 999? т .е. больше трех знаков
Суммирование значений из текста с разделителем, выделение значений из текста и их обработка
 
Ваша задачка меня очень заинтересовала. Я быстро нашел решение, но есть одна загвоздка. Каждый раз написание текста меняется то количества пишут через "-" то без него.
VBA. Подстановка в таблицу по двум значениям
 
Цитата
zavex написал:
статью подробно изучу, буду пробовать... https://excelvba.ru/code/SearchArray
Тогда это единственный вариант ускорить. Я использовал эти функции в своих макросах и они значительно ускоряют.
Связка файла с OUTLOOK по датам
 
Это возможно, но файл должен быть все время запущен. Или его нужно запускать каждый день. при запуске он будет проверять даты и если нужно отправлять письмо. Но я думаю если вы не имели дел с макросами, то вам в ветку работа.
VBA. Подстановка в таблицу по двум значениям
 
или есть еще вариант почитать вот эту статью "Быстрый поиск в двумерном массиве"

https://excelvba.ru/code/SearchArray
VBA. Подстановка в таблицу по двум значениям
 
Попробуй через файнд может быстрее будет
Код
Sub find()
tim = Timer
Application.DisplayAlerts = False   
Application.ScreenUpdating = False     
Set a = ActiveWorkbook.Worksheets("1")
Set b = ActiveWorkbook.Worksheets("2")
LRa = a.Cells(Rows.Count, 1).End(xlUp).Row
LRb = b.Cells(Rows.Count, 1).End(xlUp).Row

For j = 2 To LRb
Set poz1 = a.Columns(1).find(What:=b.Cells(j, 1), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows) 
If poz1 Is Nothing Then GoTo neeext
Set poz2 = a.Range(a.Cells(poz1.Row, 3), a.Cells(LRa, 3)).find(What:=b.Cells(j, 2), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows) 
b.Cells(j, 3).Value = a.Cells(poz2.Row, 4)
neeext:
Next j
Application.DisplayAlerts = True  
Application.ScreenUpdating = True
MsgBox Timer - tim
End Sub
Макрос печати с кнопки по условию в ячейке
 
Давайте файл
Динамическкая СУММ: суммировать данные выбранного месяца
 
Нужно использовать формулу суммесли
макрос: обновление сводных таблиц во всей книге при изменении данных
 
Я вас не пойму, если исходный лист из которого сделана сводная удаляется, то тогда откуда ей обновляться?
Сравнение части пути к папке, VBA
 
Цитата
Kentavrik7 написал:
Единица впереди означает "с первого символа"
да. нужно искать не с "C\" потому что она всегда первая.
Функция InStr указывает положение первого появления одной строки внутри другой
Копирование данных макросом
 
Без примера не понятно что у вас там происходит.  
Сравнение части пути к папке, VBA
 
да. "0' не обязательный аргумент
Изменено: mrzv - 20.07.2018 09:38:42
Сравнение части пути к папке, VBA
 
If InStr(1, shp.LinkFormat.SourceFullName, "C\Папка 1\отчетность\Отчет \Прочие \") > 1 Then
Как обновить данные при использования массива
 
А если вставить как значения?
Как обновить данные при использования массива
 
Excel 2016  появились функции МИНЕСЛИ и МАКСЕСЛИ вы можете уйти от формул массива
Запрет открытия окна "Обновить связь", VBA
 
Код
Application.DisplayAlerts = False
Workbooks.Open ....., UpdateLinks:=0
Удаление пустых строк из таблицы макросом
 
зачем на это макрос?
Отбросить знаки после запятой с помощью VBA
 
можно организовать цикл по массиву и округлить каждое значение  
Отбросить знаки после запятой с помощью VBA
 
Цитата
Dyroff написал:
Нужно убрать все цифры после запятой в массиве данных
Не понятно подойдет ли округление если да то  ROUND  
Макрос копирования листа в новую книгу., Макрос копирования листа в новую книгу с снятием защиты и вставкой значениями..
 
Новую книгу можно сохранять автоматом, можно автоматом создавать/отправлять письмом через outlook и многое другое. Все зависит от постановки задачи.
Макрос копирования листа в новую книгу., Макрос копирования листа в новую книгу с снятием защиты и вставкой значениями..
 
Насколько мне видится, процесс пояснен не полностью и автоматизировать его можно гораздо больше...
Макрос копирования листа в новую книгу., Макрос копирования листа в новую книгу с снятием защиты и вставкой значениями..
 
как задачу описали такой ответ и получили.
Код
Sub Макрос()
 
Set TW = ActiveWorkbook
Sheets("Результат").Unprotect Password:=123
Cells.Copy
Workbooks.Add
With Cells(1, 1)
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
TW.Sheets("Результат").Protect Password:=123

End Sub
Макрос копирования листа в новую книгу., Макрос копирования листа в новую книгу с снятием защиты и вставкой значениями..
 
Код
Sub Макрос()

код который выше

End Sub
Страницы: 1 2 След.
Наверх