Имя: Пароль:
IT
 
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
всем спасибо, буду разбираться.