Добрый день, уважаемые. Завис на этом этапе. Хочу сделать запрос из базы по значению в ячейке А1 Как только дело доходит до WHERE (T_Satish.SatAlici = a) запрос не срабатывает и выдает ошибку 400. В чем может быть проблема?
[vba]
Код
Sub SQLQuery_1() Dim varConn As String Dim varSQL As String Dim a a = [A1].Value Range("AN2").CurrentRegion.Delete xlUp
varConn = "ODBC;DSN=MS Access Database;DBQ=\\HYPERV\data\SDAT.mdb;Driver={Driver do Microsoft Access (*.mdb)}"
varSQL = "SELECT SatAlici, SatNote FROM T_Satish WHERE (T_Satish.SatAlici = a)"
With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("AN2")) .CommandText = varSQL .Name = "Query-39008" .Refresh BackgroundQuery:=False End With
End Sub
[/vba]
Добрый день, уважаемые. Завис на этом этапе. Хочу сделать запрос из базы по значению в ячейке А1 Как только дело доходит до WHERE (T_Satish.SatAlici = a) запрос не срабатывает и выдает ошибку 400. В чем может быть проблема?
[vba]
Код
Sub SQLQuery_1() Dim varConn As String Dim varSQL As String Dim a a = [A1].Value Range("AN2").CurrentRegion.Delete xlUp
varConn = "ODBC;DSN=MS Access Database;DBQ=\\HYPERV\data\SDAT.mdb;Driver={Driver do Microsoft Access (*.mdb)}"
varSQL = "SELECT SatAlici, SatNote FROM T_Satish WHERE (T_Satish.SatAlici = a)"
With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("AN2")) .CommandText = varSQL .Name = "Query-39008" .Refresh BackgroundQuery:=False End With
Gustav, Здравствуйте, Константин. Теперь вот такая ошибка
Напрямую через Данные и Внешний источник подключаюсь к базе. Путь правильный, с этим проблем нет. Задача получить только те данные, которые соответствуют значению в ячейке А1. Может я вообще не тот путь избрал?
Gustav, Здравствуйте, Константин. Теперь вот такая ошибка
Напрямую через Данные и Внешний источник подключаюсь к базе. Путь правильный, с этим проблем нет. Задача получить только те данные, которые соответствуют значению в ячейке А1. Может я вообще не тот путь избрал?Stormy
Какой тип поля у SatAlici в базе и какое значение в ячейке A1 ?
Числовой В А1 записано 718. Для большего понимания проблемы. В таблице (Access) T_Satish список всех продаж по клиентам. 718 это ID определенного клиента ( список ID это столбец SatAlici) , чтобы не тянуть всю базу с 80000 строчками и дальше не обрабатывать формулами, хочу получить данные из таблицы относящиеся к этому ID
Какой тип поля у SatAlici в базе и какое значение в ячейке A1 ?
Числовой В А1 записано 718. Для большего понимания проблемы. В таблице (Access) T_Satish список всех продаж по клиентам. 718 это ID определенного клиента ( список ID это столбец SatAlici) , чтобы не тянуть всю базу с 80000 строчками и дальше не обрабатывать формулами, хочу получить данные из таблицы относящиеся к этому IDStormy
такой вариант не подойдет? Один раз запускаем AddQt() и потом при изменении в A1 автоматически обновляется [vba]
Код
Sub AddQT() Dim varConn$, varSQL$, wsh As Worksheet varConn = "ODBC;DSN=MS Access Database;DBQ=\\HYPERV\data\SDAT.mdb;Driver={Driver do Microsoft Access (*.mdb)}" varSQL = "SELECT SatAlici, SatNote FROM T_Satish WHERE (T_Satish.SatAlici = ?)" Set wsh = ActiveSheet With wsh .[AN2].CurrentRegion.Delete xlUp With .QueryTables.Add(varConn, .[AN2], varSQL).Parameters.Add("p1", 4) .SetParam 2, wsh.[A1] .RefreshOnChange = True .Parent.Parent.Refresh End With End With End Sub
[/vba]
такой вариант не подойдет? Один раз запускаем AddQt() и потом при изменении в A1 автоматически обновляется [vba]
Код
Sub AddQT() Dim varConn$, varSQL$, wsh As Worksheet varConn = "ODBC;DSN=MS Access Database;DBQ=\\HYPERV\data\SDAT.mdb;Driver={Driver do Microsoft Access (*.mdb)}" varSQL = "SELECT SatAlici, SatNote FROM T_Satish WHERE (T_Satish.SatAlici = ?)" Set wsh = ActiveSheet With wsh .[AN2].CurrentRegion.Delete xlUp With .QueryTables.Add(varConn, .[AN2], varSQL).Parameters.Add("p1", 4) .SetParam 2, wsh.[A1] .RefreshOnChange = True .Parent.Parent.Refresh End With End With End Sub