Код Pl/sql

  • Автор темы Sh00r00p
  • Дата начала
S

Sh00r00p

#1
объясните пожалуйста строку.
в таблице INCOTERMS есть только 3 поля: "INCOTERMS","TARIF_INSIDE","NO_SAIL"

select incoterms ,
0 as Checked into incoterms_list -- че за 0?? и incoterms_list
from INCOTERMS
where incoterms not in (
select incoterms
from contracts_ram_incoterm
where ID_CONTRACTS_RAM= " & Me.ID & "
)
order by incoterms
 

Over

Well-known member
04.07.2007
116
0
#2
В общем, incoterms_list - это некоторая переменная, или даже таблица

если пишется select ... into .. то значит значение из выборки будет заноситься в эту перменную/таблицу
0 - это ноль.
в данном запросе результат будет состоять из двух полей: первое - incoterms, второе поле будет называться Checked и содержать значения 0 в каждой записи.
 
S

Sh00r00p

#3
во точно, спасибо! нашел таблицу incoterms_list у которой 2 поля "incoterms" и "Cheked"
 
S

Sh00r00p

#4
вопрос такой:
есть таблица 1 с данными
столбец1 столбец2
1 имя1
2 имя2
3 имя3

список значений столбца 1 выводится в компонент ComboBox1. при выборе занчения в ComboBox1 надо чтоб значение из столбца2 переписовалось в переменную sql. (VBA или что знаете)
 

Over

Well-known member
04.07.2007
116
0
#5
Обожди, ты, видимо, что-то путаешь. SQL - это язык запросов. Запрос целиком передаётся на сервер и там целиком обрабатывается, а на твой комп возвращаются лишь результаты выполнения. И у тебя никак не получится передать какое-то значение в переменную SQL-запроса/скрипта во время его выполнения.
Единственный возможный вариант - если выбранное значение Комбобокса будет передаваться в качестве параметра при вызове хранимой процедуры сервера или в качестве значения при формировании SQL-запроса к серверу.

Другими словами, если у тебя выбираемые данные зависят от того, что юзер выберет/введёт на форме, то тебе нужно будет: 1) получить все данные с формы, 2) сформировать текст SQL-запроса (локально), 3) отправить его на сервер для выполнения, 4) обработать результаты выполения запроса.
 
S

Sh00r00p

#6
данные с формы получены в виде переменной переменная1
текст запроса должен быть типа
"SELECT столбец2 FROM таблица1 where столбец1='" & переменная1 & "'"

теперь мне надо достать оттуда значениие, что-то вроде

переменная2 = CurrentDb.OpenRecordset(запрос) - но он выдает какуюто муру =) с типами
т.е. вы правы отправить его на сервер для выполнения и обработать результаты выполения запроса.

как это сделать? а кака если база локальная?
 

Over

Well-known member
04.07.2007
116
0
#7
Когда ты делаешь OpenRecordset, то в БД на обработку отправляется запрос. Результатом выполнения запроса будет являться ТАБЛИЦА!, даже если в ней одна запись и один столбец.
Что касается метода OpenRecordset, то он возвращает объект типа Recordset. И у тебя никак не получится присвоить объект переменной "переменная2". Обычно пишут так:
Код:
Set RecSetObj = CurrentDb.OpenRecordset(запрос)
А потом уже через свойство Value (вроде бы) получай доступ к значениям, которые явились результатом твоего запроса.

П.С. Пожалуйста, перед тем, как спрашивать что-то в форуме, разберись с хелпом. В Аксессе есть по VBA и ADO хороший хелп, где всё описано.
 

Over

Well-known member
04.07.2007
116
0
#8
Когда ты делаешь OpenRecordset, то в БД на обработку отправляется запрос. Результатом выполнения запроса будет являться ТАБЛИЦА!, даже если в ней одна запись и один столбец.
Что касается метода OpenRecordset, то он возвращает объект типа Recordset. И у тебя никак не получится присвоить объект переменной "переменная2". Обычно пишут так:
Код:
Set RecSetObj = CurrentDb.OpenRecordset(запрос)
А потом уже через свойство Value (вроде бы) получай доступ к значениям, которые явились результатом твоего запроса.

П.С. Пожалуйста, перед тем, как спрашивать что-то в форуме, разберись с хелпом. В Аксессе есть по VBA и ADO хороший хелп, где всё описано.
 
S

Sh00r00p

#9
Спасибо большое за подсказку. Я сделал через Field(0).
Разве форум не для того сделан чтоб спрашивать непонятные вещи? help по VBA на английском и не всем людям понятны некоторые фразы тем более когда уже голова не варит)). Хочется ясного разъяснения.