powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь. про выборку
8 сообщений из 8, страница 1 из 1
Нужна помощь. про выборку
    #32439068
DEN240
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет алл! Мне нужна помощь...
Нужен метод позволяющий указать поля, которые должны отображаться в результирующем наборе записей.
На пример как программно можно включать и отключать поля в запросе ?
Заранее спасибо.
...
Рейтинг: 0 / 0
Нужна помощь. про выборку
    #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
Нужна помощь. про выборку
    #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
Нужна помощь. про выборку
    #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
Нужна помощь. про выборку
    #32439140
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак, конечно.
Это просто способ скрывать/показывать поля в сохраненном запросе - в соответствии с заданным вопросом.
Еще раз - сам я тоже предпочитаю через SQL.
...
Рейтинг: 0 / 0
Нужна помощь. про выборку
    #32440007
DEN240
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
 "а потом с помощью строковых функций формировать выражение sql..." 

именно это меня интересует, потому что у меня таких полей свыше 20.
И пользователю нужно управлять ими с помощью check.
Если можно покажи пожалуйста с программным примером.
Буду очень рад.
...
Рейтинг: 0 / 0
Нужна помощь. про выборку
    #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
Нужна помощь. про выборку
    #32441854
DEN240
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все ОК! СПАСИБО!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь. про выборку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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