Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь. про выборку / 8 сообщений из 8, страница 1 из 1
12.03.2004, 08:19
    #32439068
DEN240
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
Привет алл! Мне нужна помощь...
Нужен метод позволяющий указать поля, которые должны отображаться в результирующем наборе записей.
На пример как программно можно включать и отключать поля в запросе ?
Заранее спасибо.
...
Рейтинг: 0 / 0
12.03.2004, 08:33
    #32439084
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
Через объект QueryDef и его свойство sql.
Типа этого /DAO/

Dim db As Database
Dim q As QueryDef

Set db = CurrentDb: Set q = db.QueryDefs("Query1")

а потом с помощью строковых функций формировать выражение sql и присвоить полученную строку q.sql

При выполнение последнего запрос изменится и его можно выполнять.
...
Рейтинг: 0 / 0
12.03.2004, 09:00
    #32439106
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
Лично я также предпочитаю через SQL.
Но можно и по другому.
Пример хелпа
...Для определения свойства ColumnHidden используются процедуры ShowColumn и SetFieldProperty, определенные в стандартном модуле базы данных.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub ShowColumn(fldObject As Field, intShow As Integer)
    ' Задает значение свойства ColumnHidden.
    SetFieldProperty fldObject, "ColumnHidden", dbLong, Not intShow
End Sub

Sub SetFieldProperty(fldField As Field, strPropertyName As String, _
        intPropertyType As Integer, varPropertyValue As Variant)
    ' Задает значение свойства поля без генерирования кода невосстанавливаемой ошибки выполнения.

Const conErrPropertyNotFound =  3270 
    Dim prpProperty As Property
    On Error Resume Next                ' Не перехватывать ошибки.
    fldField.Properties(strPropertyName) = varPropertyValue
    If Err <> 0 Then                    ' Ошибка при задании значения.
        If Err <> conErrPropertyNotFound Then
            On Error GoTo  0 
            MsgBox  "Не удается задать свойство '" & strPropertyName _
                & "' для поля '" & fldField.Name & "'" ,  48 ,  "SetFieldProperty" 
        Else
            On Error GoTo  0 

Set prpProperty = fldField.CreateProperty(strPropertyName, _
                intPropertyType, varPropertyValue)
            fldField.Properties.Append prpProperty
        End If
    End If
End Sub


Применение
Код: plaintext
1.
2.
3.
Dim dbs As DAO.Database
Set dbs = CurrentDb
ShowColumn dbs.QueryDefs![Запрос1].Fields![Количество], True
DoCmd.OpenQuery  "Запрос1" 
...
Рейтинг: 0 / 0
12.03.2004, 09:19
    #32439135
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
2 Alexander G

Это интересно.

Как с помощью этого скажем сделать запрос с плавающими полями и параметрами, к примеру поле_1 и поле_2 в запросе , пусть оба поля числовые.
Делается выборка из первого или второго, или из обеих сразу


Вот три разных запроса

Select поле_1 where поле1=5 from Таблица
Select поле_2 where поле1=10 from Таблица
Select поле_1,поле_2 where поле1=5 and поле_2=10 from Таблица

Надо через VBA/DAO "лепить" нужный
...
Рейтинг: 0 / 0
12.03.2004, 09:23
    #32439140
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
Никак, конечно.
Это просто способ скрывать/показывать поля в сохраненном запросе - в соответствии с заданным вопросом.
Еще раз - сам я тоже предпочитаю через SQL.
...
Рейтинг: 0 / 0
12.03.2004, 14:21
    #32440007
DEN240
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
Код: plaintext
 "а потом с помощью строковых функций формировать выражение sql..." 

именно это меня интересует, потому что у меня таких полей свыше 20.
И пользователю нужно управлять ими с помощью check.
Если можно покажи пожалуйста с программным примером.
Буду очень рад.
...
Рейтинг: 0 / 0
13.03.2004, 07:52
    #32440744
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
Имеем сохраненный "Запрос1"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim dbs As DAO.Database
Dim strSQL As String
Dim intId as Integer 

  intId = 1 
  strSQL =  "SELECT Table1.field1, Table1.field2 FROM Table1 WHERE Table1.id="  & intID &  ";" 

Set dbs = CurrentDb
dbs.QueryDefs( "Запрос1" ).SQL = strSQL
DoCmd.OpenQuery  "Запрос1" 


Как правильно формировать строку SQL коде тут
...
Рейтинг: 0 / 0
15.03.2004, 13:44
    #32441854
DEN240
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь. про выборку
Все ОК! СПАСИБО!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь. про выборку / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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