Access и VBA. Как выполнить Select ? #423756


#0 by profik777
просьба громко не смеяться и не флудить... Суть задачи: в процедурке 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 Set q = dbsCurr.QueryDefs("Запрос1")   sSQL = "Select TOP1 lastname from sotr order by lastname"   End Sub
#1 by Kreont
переменной period - невижу :) А для Execute все равно веслективный запрос или нет )
#2 by profik777
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 by profik777
так что не все равно... Это он так ругается на q.execute
#4 by Kreont
Из 1С выкопал, мож пригодится: РекордСет.Open("select .... Пока РекордСет.EOF = 0 Цикл Значение = РекордСет.Fields("имя поля").Value;    РекордСет.MoveNext; КонецЦикла;
#5 by shuhard_серый
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     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 by Kreont
Вот тут, где ???? проверь еще, может там " as " должно быть, ну или запятая: sSQL = "Select TOP1 ???? lastname from sotr order by lastname"
#7 by profik777
всем спасибо, буду разбираться.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С