Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Эмуляция сохраненного запроса. Возможно ли это? / 5 сообщений из 5, страница 1 из 1
11.03.2003, 15:25
    #32117497
Hayder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эмуляция сохраненного запроса. Возможно ли это?
Можно ли открыть запрос на выборку не сохраняя его в виде сохраненного запроса?

Есть текст SQL запроса (только на выборку).
Есть VBA процедура.
Как из нее окрыть данный запрос в виде визуальной таблички не создавая сохраненного запроса.(можно использовать временный (temporary QueryDef) запрос)?
...
Рейтинг: 0 / 0
23.03.2003, 22:30
    #32125281
MoHock
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эмуляция сохраненного запроса. Возможно ли это?
В CD к книге "Разработка настольных приложений в Ассеss 2002 (для профессионалов)" (авторы Пол Литвин, Кен Гетц, Майк Гунделой, изд. Питер-2002) есть форма и три Модуля. Все это называется - SQL Scratchpad. Форма работает как редактор запросов. Пишешь запрос, кликаешь кнопку RunSQL и получаешь результат своего запроса. Покопаешься в модулях, может поможет
...
Рейтинг: 0 / 0
24.03.2003, 08:13
    #32125331
-=Alexey=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эмуляция сохраненного запроса. Возможно ли это?
Если создается QueryDef c пустым именем (имя - пустая строка), то этот Query временный, как только изчезнет переменная связанная с ним так изчезнет и Query. Далее пример из помощи access 2k

Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
Sub ClientServerX2()
    Dim dbsCurrent As Database
    Dim qdfBestSellers As QueryDef
    Dim qdfBonusEarners As QueryDef
    Dim rstTopSeller As Recordset
    Dim rstBonusRecipients As Recordset
    Dim strAuthorList As String

    ' Open a database from which QueryDef objects can be created.'
    Set dbsCurrent = OpenDatabase( "DB1.mdb" )

    ' Create a temporary QueryDef object to retrieve'
    ' data from a Microsoft SQL Server database.'
    Set qdfBestSellers = dbsCurrent.CreateQueryDef( "")
    With qdfBestSellers
        .Connect = " ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers "
        .SQL = " SELECT title, title_id FROM titles ORDER BY ytd_sales DESC "
        Set rstTopSeller = .OpenRecordset()
        rstTopSeller.MoveFirst
    End With

    ' Create a temporary QueryDef to retrieve data from'
    ' a Microsoft SQL Server database based on the results from the first query.'
    Set qdfBonusEarners = dbsCurrent.CreateQueryDef("  ")
    With qdfBonusEarners
        .Connect = " ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers "
        .SQL = " SELECT * FROM titleauthor WHERE title_id = '" & _
            rstTopSeller!title_id & "' "
        Set rstBonusRecipients = .OpenRecordset()
    End With

    ' Build the output string.'
    With rstBonusRecipients
        Do While Not .EOF
            strAuthorList = strAuthorList & "    " & _
                !au_id & " :  $ " & (10  * !royaltyper) & vbCr
            .MoveNext
        Loop
    End With

    ' Display results.'
    MsgBox "Please send a check to the following  " & _
        " authors in the amounts shown: " & vbCr & _
        strAuthorList & " for outstanding sales of  " & _
        rstTopSeller!Title & " ."

    rstTopSeller.Close
    dbsCurrent.Close

End Sub
...
Рейтинг: 0 / 0
25.03.2003, 18:31
    #32126836
assa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эмуляция сохраненного запроса. Возможно ли это?
"окрыть данный запрос в виде визуальной таблички "

ежели имеется в виду стандартная форма представления запроса (таблицы) Access, то это делается DoCmd.OpenQuery(Имя,,), и обойти имя запроса затруднительно. Можно конечно вывести рекордсет в неком виде, например в текстовое поле (поля), но проще всего поюзать сохраненный запрос(любой)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function SHow_tmpQDF(strSQL As String)
Dim qdf As QueryDef
Dim strSQL0 As String

    Set qdf = CurrentDb.QueryDefs( "Tmp" )
    strSQL0 = qdf.SQL
    qdf.SQL = strSQL
    DoCmd.OpenQuery ( "Tmp" )
    qdf.SQL = strSQL0
    Set qdf = Nothing
End Function


или даже создать и порушить...
...
Рейтинг: 0 / 0
26.03.2003, 03:49
    #32126966
-=Alexey=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Эмуляция сохраненного запроса. Возможно ли это?
"открыть данный запрос в виде визуальной таблички "
никаких проблем не представляет, так как свойство Recordset у формы доступно для записи.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Эмуляция сохраненного запроса. Возможно ли это? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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