![]() |
![]() |
![]() |
|
Access и VBA. Как выполнить Select ? | ☑ | ||
---|---|---|---|---|
0
profik777
04.08.09
✎
13:55
|
просьба громко не смеяться и не флудить...
Суть задачи: в процедурке VBA выполнить запрос и результат этого запроса присвоить перемнной. Execute в данной ситуации использовать нельзя, потому как запрос чисто селективный, без модификации данных. Как переменной period присвоить результат выполнения запроса, указанного в sSQL ??? Спасибо *************************************** Private Sub Кнопка1_Click() Dim rstCurr As DAO.Recordset Dim dbsCurr As Database Dim period As String Dim q As DAO.QueryDef Dim sSQL As String Set dbsCurr = Access.CurrentDb Set rstCurr = dbsCurr.OpenRecordset("filik", dbOpenDynaset) Set dlgOpen = Application.FileDialog(1) Set q = dbsCurr.QueryDefs("Запрос1") sSQL = "Select TOP1 lastname from sotr order by lastname" End Sub |
|||
1
Kreont
04.08.09
✎
14:00
|
переменной period - невижу :)
А для Execute все равно веслективный запрос или нет ) |
|||
2
profik777
04.08.09
✎
14:07
|
(1)
Cannot execute a select query. (Error 3065) You tried to use the Execute method with a select query. The Execute method is valid only with action queries. Select queries contain a SELECT statement and can return records; action queries do not. |
|||
3
profik777
04.08.09
✎
14:07
|
так что не все равно...
Это он так ругается на q.execute |
|||
4
Kreont
04.08.09
✎
14:10
|
Из 1С выкопал, мож пригодится:
РекордСет.Open("select .... Пока РекордСет.EOF = 0 Цикл Значение = РекордСет.Fields("имя поля").Value; РекордСет.MoveNext(); КонецЦикла; |
|||
5
shuhard_серый
04.08.09
✎
14:11
|
(0)
Dim MyDB As Database Dim MyRst As Recordset Dim mystr As String Set MyDB = CurrentDb mystr = "select * from TAmbar where Ambar_Id = " & Me![Sp_Ambar].Column(0) Set MyRst = MyDB.OpenRecordset(mystr) If MyRst.RecordCount <> 0 Then With MyRst .Edit ![Ambar_Tip] = Me![Ps_Tip] ![Ambar_Label] = (Trans_My(Me![P_Label])) ![Ambar_Date] = Trans_Date(Me![P_Date]) ![Ambar_Dir] = (Trans_My(Me![P_Dir])) ![Ambar_Path] = (Trans_My(Me![P_Path])) ![Ambar_Ist] = (Trans_My(Me![P_Ist])) ![Ambar_Name] = Me![P_Name] ![Ambar_Kod] = Me![P_Kod] ![Ambar_Mesto] = Me![Ps_Mesto] ![Ambar_Vid] = Me![Ps_Vid] .Update End With End If MyRst.Close End If Set MyDB = Nothing |
|||
6
Kreont
04.08.09
✎
14:14
|
Вот тут, где ???? проверь еще, может там " as " должно быть, ну или запятая:
sSQL = "Select TOP1 ???? lastname from sotr order by lastname" |
|||
7
profik777
04.08.09
✎
15:23
|
всем спасибо, буду разбираться.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |