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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Как сохранить запрос из формы Access(97-2002)
 
 автор: Жень Шень   (24.01.2011 в 12:18)   личное сообщение
 
 

Всем привет!
Пожалуйста, подскажите как выйти из такой ситуации.
В ленточной форме отображаются данные таблицы. В примечании формы есть наборы полей со списком и кнопки. При нажатии кнопки FILTER включаются выбранный фильтры, и соответственно изменяется набор записей. Вот часть кода:
Private Sub FILTER_Click()
On Error GoTo Err_FILTER_Click
    Dim strf As String
    strf = ""
    flag = False
' Фильтр «Район» по полю со списком
    If Me![pspRegion] <> "ВСЕ РАЙОНЫ" Then
        strf = strf & " ID_RAJ = " & (Me![pspRegion].Column(0))
        flag = True
    End If
' Фильтр «Улица» по полю со списком
    If Me![pspStreet] <> "ВСЕ УЛИЦЫ" Then
        If flag = True Then
            strf = strf & " AND ID_St = " & (Me![pspStreet].Column(0))
        Else
            strf = "ID_St = " & (Me![pspStreet].Column(0))
            flag = True
        End If
    End If
‘ и еще 7 фильтров
' конец выбора
    If flag Then
        Me![nFILTR].Visible = True
    Else
        Me![nFILTR].Visible = False
    End If
    Me.FILTER = strf
    Me.FilterOn = True
Exit_FILTER_Click:
    Exit Sub
Err_FILTER_Click:
    MsgBox Err.Description
    Resume Exit_FILTER_Click
End Sub

Затем пытаюсь передать набор записей в запрос, передать его в книгу Excel и открыть ее:
Private Sub excelRun_Click()
    Dim sqlList As String
    sqlList = Me.RecordSource
    CurrentDb.QueryDefs("exHouse").sql = sqlList
    DoCmd.OutputTo acOutputQuery, "exHouse", acFormatXLS, "exHouse.xls", True
End Sub

Однако передается весь набор записей, то есть не учитываются фильтры.
Как сформировать sql-запрос sqlList с учетом фильтров и передать его в запрос exHouse и сохранить его (он существует в качестве пустышки).
Спасибо.

  Ответить  
 
 автор: snipe   (24.01.2011 в 12:39)   личное сообщение
 
 

filter живет отдельно от recordsource

если данные в форме прописаны в виде строки SQL (без слова Where)

то можно попробывать так
sqlList = Me.RecordSource & " Where " & me.filter & ";"

  Ответить  
 
 автор: Жень Шень   (25.01.2011 в 10:47)   личное сообщение
 
 

Where присутствует. Но мысль ясна. Выкручусь. Спасибо за совет.

  Ответить  
 
 автор: snipe   (25.01.2011 в 10:55)   личное сообщение
 
 

Можно сделать так
один запрос постоянный (который вам для формы отбирает)
а саму форму сделать на другом запросе (внутри формы прописать) который будет ссылаться на первый запрос

  Ответить  
 
 автор: Жень Шень   (25.01.2011 в 14:48)   личное сообщение
 
 

Я примерно так и поступлю:
1. Создам отдельный запрос к таблице для формы по всем полям.
2. То что есть в Where в данный момент в форме добавлю к строке фильтров
з. Это строку уже использую для формирования и сохранения нужного запроса.

Еще раз спасибо за помощь. Порой простой намек со стороны выводит мысль из ступора.

  Ответить  
 
 автор: Анатолий (Киев)   (25.01.2011 в 15:16)   личное сообщение
 
 

Если использовать объектную модель Excel, то экспорт можно сделать методом CopyFromRecordset, передав ему RecordsetClone формы. Плюс оформить лист в законченном виде.

  Ответить  
 
 автор: Explorer   (25.01.2011 в 16:14)   личное сообщение
45 Кб.
 
 


экспорт можно сделать методом CopyFromRecordset



а вот взрослые дятьки на такое даже не думают заморачиваться!

SAP - экспорт в эксель ===>>>

-----------
translation:
а на все ваши сортировки, фильтрации, подитоги
нам совершенно наплевать

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