Гость
Map
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при обновлении значений таблицы Excel при помощи SQL запроса / 16 сообщений из 16, страница 1 из 1
23.02.2022, 15:25
    #40136090
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Всем привет!
Хочу обновить данные в фале DB из файла GetFrom по частичному совпадению Имени
Никак не могу разобраться в чем ошибка. Код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub UpdateFrom()
Dim mySQL As String, myConnect As Object
Dim DataRange As String, strAddress As String, Target, wbTarget As Workbook
Dim FSO As FileDialog
    Set FSO = Application.FileDialog(msoFileDialogFilePicker)
    
    With FSO
        .AllowMultiSelect = False
        .Show
    End With
    Set wbTarget = GetObject(FSO.SelectedItems(1))
    strAddress = Replace(ThisWorkbook.Sheets(1).Cells(1, 1).CurrentRegion.Address, "$", "")
    DataRange = "[" & ThisWorkbook.Sheets(1).Name & "$" & strAddress & "]"
    Set myConnect = CreateObject("ADODB.Connection")
    myConnect.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=" & wbTarget.FullName & ";" & _
           "Extended Properties=""Excel 12.0;HDR=YES"""
    Target = "[" & wbTarget.Sheets(1).Name & "$" & Replace(wbTarget.Sheets(1).Cells(1, 1).CurrentRegion.Address, "$", "") & "]"
    mySQL = "UPDATE " & Target & " SET [Имя]=" & DataRange & ".[Имя] WHERE [Имя] LIKE 'Иванов%'"
    myConnect.Execute mySQL
End Sub



Выдает ошибку "Отсутствует значение для одного или нескольких параметров"
Всем заранее большое спасибо!!
...
Рейтинг: 0 / 0
23.02.2022, 15:38
    #40136092
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Код: sql
1.
UPDATE [Sheet1$A1:B4] SET [Имя]=[Лист1$A1:B4].[Имя] WHERE [Имя] LIKE 'Иванов%'

Ну запрос - ерунда какая-то. Что конкретно нужно сделать? Обновить одну строку одним значением? Тогда надо получить это значение. Обновить соответствующие значения по каким-то критериям? Тогда запрос должен быть более сложным и содержать как минимум JOIN-ы.

А здесь просто попытка присвоить одному рекордсету другой рекордсет. SQL так не работает
...
Рейтинг: 0 / 0
23.02.2022, 15:49
    #40136094
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Shocker.Pro, хотелось обновить значение по критериям, можно Вас попросить привести пример такого запроса?

Большое спасибо!
...
Рейтинг: 0 / 0
23.02.2022, 15:57
    #40136097
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Shocker.Pro
Что конкретно нужно сделать?
...
Рейтинг: 0 / 0
23.02.2022, 15:59
    #40136098
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Начинающий VBA Coder
привести пример такого запроса?

различные примеры
...
Рейтинг: 0 / 0
23.02.2022, 16:13
    #40136108
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Shocker.Pro
Что конкретно нужно сделать?

Хотел обновить значение для Иванова по части совпадения имени.

Большое спасибо!
...
Рейтинг: 0 / 0
23.02.2022, 17:55
    #40136132
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Это не ответ. Какое значение, по какой части, в источнике? в приёмнике?
Если в одной таблице есть
Иванов1
Иванов2
а во второй
Иванов4
Иванов3

Что куда должно обновляться?
Не ленись написать ТЗ, я уже гораздо больше букв чем ты написал в этом топике, а кому из нас нужно решение проблемы?
...
Рейтинг: 0 / 0
24.02.2022, 12:28
    #40136231
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Прошу прощения, подразумевается, что в таблице книги DB и таблице книги GetFrom один Иванов.
Из файла GetFrom с таблицы на Лист1 нужно обновить данные в файле DB на листе Sheet1 для Иванова, по части совпадения текста в ячейке таблицы в файле GetFrom.

Заранее большое Вам спасибо!
...
Рейтинг: 0 / 0
24.02.2022, 12:38
    #40136232
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Еще раз: непонятно, части чего должны совпадать.

Есть некая запись в таблице GetFrom
Есть некая запись в таблице DB
Есть LIKE 'Иванов%'

Вот что с чем и как в этом треугольнике должно совпадать?
И если в запросе будет не LIKE 'Иванов%', а LIKE 'Ив%', к примеру, то что в этом случае должно обновляться? Должна ли запись 'Иванов' в DB обновляться из записи 'Ивлеев' в GetFrom
...
Рейтинг: 0 / 0
24.02.2022, 13:07
    #40136233
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Like 'Иванов%' - это константа, если можно так выразится, - меняться не будет.

Файл DB - это файл с таблицей, запись в которой нужно обновлять из таблицы с файла GetFrom.

Задумка была, чтобы по совпадении имени (в моём случае - это Иванов), обновлялась запись в таблице файла DB.
...
Рейтинг: 0 / 0
24.02.2022, 13:17
    #40136235
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Начинающий VBA Coder
Like 'Иванов%' - это константа, если можно так выразится, - меняться не будет.
Тогда почему нужно писать Like 'Иванов%' вместо ='Иванов 2222'

Этот Like - он запутывает ситуацию.

Начинающий VBA Coder
Файл DB - это файл с таблицей, запись в которой нужно обновлять из таблицы с файла GetFrom.
Озвучь пожалуйста четко, по какому критерию выбирается запись из файла GetFrom чтобы получить запись для конкретной записи в файле DB?
В файле GetFrom есть НЕСКОЛЬКО строк. По какому именно критерию должна быть найдена строка среди них, данные из которых должны попасть в строку 'Иванов 2222'?
...
Рейтинг: 0 / 0
24.02.2022, 13:20
    #40136236
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Начинающий VBA Coder
по совпадении имени (в моём случае - это Иванов)
в твоем случае нет никакого имени Иванов. В исходной таблице есть имя Иванов 2222, в источнике есть Иванов 22224. Ни то, ни другое - не Иванов.
...
Рейтинг: 0 / 0
24.02.2022, 13:27
    #40136237
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Прошу прощения, пример неудачный.

Код: vbnet
1.
UPDATE [Sheet1$A1:B4] SET [Имя]=[Лист1$A1:B4].[Имя] WHERE [Имя] LIKE 'Иванов 2222%'



Задумка была такая: есть 2 таблицы, из первой таблицы данные попадают во вторую при условии что запись во второй таблице (которую обновляем) существует и часть имени совпадает.

Если просто написать:
Обновить данные во второй таблице, вторая таблица.Имя = первая таблица.Имя Где вторая таблица.Имя Частично совпадает с именем из первой таблицы

Прошу прощения, что Вас запутал.
Большое спасибо!
...
Рейтинг: 0 / 0
24.02.2022, 13:48
    #40136243
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Будет что-то типа такого (упрощенно)
Код: vbnet
1.
2.
3.
4.
5.
UPDATE destination
SET destination.Имя= source.Имя
FROM DB AS source
INNER JOIN GetFrom AS destination
ON destination.Имя = LEFT(source.Имя, LEN(destination.Имя))

если, конечно, эксель поддерживает такого рода запрос на обновление
...
Рейтинг: 0 / 0
24.02.2022, 14:10
    #40136250
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
Shocker.Pro, большое спасибо!

Пойду пробовать.
...
Рейтинг: 0 / 0
24.02.2022, 16:12
    #40136273
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при обновлении значений таблицы Excel при помощи SQL запроса
А, ну я source и destination кажется спутал, ну подкорректируешь
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ошибка при обновлении значений таблицы Excel при помощи SQL запроса / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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