Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Достать значения из списка
 
 автор: al69   (13.04.2009 в 16:13)   личное сообщение
 
 

Всем привет! Помогите, если кто знает. Есть список -телефон-, как из него достать значения и присвоить переменной? RowSource не помогает, присваивает вместо значений SQL запрос списка. Очень надо.

  Ответить  
 
 автор: FORMAT   (13.04.2009 в 16:23)   личное сообщение
 
 

a=me.телефон.Value

  Ответить  
 
 автор: al69   (13.04.2009 в 16:28)   личное сообщение
 
 

Так берется только одно выделенное значение. А в списке может быть несколько значений, надо их все присвоить переменной.

  Ответить  
 
 автор: FORMAT   (13.04.2009 в 16:39)   личное сообщение
 
 

Тогда вам нужен рекордсетом пробежаться по списку и далее конкатенацией присваивать текущее значение списка переменной. Или же создать массив переменных.
Тока не понятно одно - нафига нужны эти извраты. Опишите, что хотите получить в итоге - наверняка есть более лучшее решение.

  Ответить  
 
 автор: al69   (13.04.2009 в 16:49)   личное сообщение
 
 

В итоге нужно получить: Есть таблица клиентов, кроме всего прочего, в ней указывается телефон клиента. У клиента может поменяться телефон (что часто происходит). То есть на одно ФИО есть запись с домашним телефоном, а есть запись где указан сотовый телефон. Надо совместить все его телефоны в одну строку с разделителем.

  Ответить  
 
 автор: FORMAT   (13.04.2009 в 17:11)   личное сообщение
 
 

Тогда рекордсетом пробегайте по таблице о объединяйте телефоны.

  Ответить  
 
 автор: al69   (13.04.2009 в 17:23)   личное сообщение
 
 

Да я в принципе уже так и сделал, но блин, таблица содержит порядка 80000 записей, и присоединенная. Долго получается.

  Ответить  
 
 автор: al69   (13.04.2009 в 17:45)   личное сообщение
 
 

Подскажите пожалуйста еще такую вещь, как открыть рекодсет на основе SQL инструкции или запроса. Пишет, что недостаточно параметров, Access 97. Открываю так:

Dim bbb As Database, rec As Recordset, str As String
str = "SELECT таблица.телефон FROM таблица GROUP BY платежи.телефон, платежи.фио HAVING (((платежи.фио) = [Forms]![форма]![фио])) ORDER BY платежи.телефон DESC"
Set bbb = CurrentDb
    Set rec = bbb.OpenRecordset(str , dbOpenDynaset)

  Ответить  
 
 автор: FORMAT   (13.04.2009 в 17:56)   личное сообщение
 
 

"SELECT таблица.телефон FROM таблица GROUP BY платежи.телефон, платежи.фио HAVING (((платежи.фио) = '" & [Forms]![форма]![фио].Values & "')) ORDER BY платежи.телефон DESC"

  Ответить  
 
 автор: Кабан   (13.04.2009 в 18:05)   личное сообщение
 
 

имхо, я бы так делал

"SELECT таблица.телефон FROM таблица WHERE (((платежи.фио) = '" & [Forms]![форма]![фио].Values & "')) GROUP BY платежи.телефон, платежи.фио ORDER BY платежи.телефон DESC"

  Ответить  
 
 автор: Lukas   (13.04.2009 в 18:44)   личное сообщение
 
 

Во всех трех случаях условия по таблице, отсутствующей во FROM ?

  Ответить  
 
 автор: Кабан   (13.04.2009 в 18:57)   личное сообщение
 
 

не знаю :)) лично я имел ввиду, что лучше сделать сначала выборку данных (WHERE), а уже потом группировать, чем группировать все, а потом выборку (HEAVING) :) в данном случае... а про таблички ничего не знаю ;)

  Ответить  
 
 автор: Lukas   (13.04.2009 в 19:00)   личное сообщение
 
 

А так не получится?

"SELECT DISTINCT телефон FROM таблица WHERE фио = '" & Forms("форма").Controls("фио").Values & "'"

  Ответить  
 
 автор: al69   (13.04.2009 в 19:09)   личное сообщение
 
 

Спасибо всем, заработало!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList