MyTetra Share
Делитесь знаниями!
Создание запросов в базе
16.03.2019
23:43
Текстовые метки: VBA, DAO, CreateQueryDef,Создание запросов
Раздел: !Закладки - VBA - Access - DAO

'======================================================================================

'##### Создание запросов в базе

'

Sub CreateQueryDef()

Dim blnQu As Boolean

Dim strPathDb As String

Dim oDb As DAO.Database 'база с итоговыми таблицами

Dim strQueryName As String

Dim strSQL As String

strPathDb = w_other.Fn_StrLastPathRead("PathDb")

Set oDb = OpenDatabase(strPathDb)

strQueryName = "Общее потребление2"

strSQL = "SELECT RefInPJI.Ref, PJI_ALL.dDate, Sum(RefInPJI.Coef) AS [Sum-Coef] " & Chr(10) & Chr(13) & _

"FROM PJI_ALL RIGHT JOIN RefInPJI ON PJI_ALL.PJI = RefInPJI.PJI " & Chr(10) & Chr(13) & _

"GROUP BY RefInPJI.Ref, PJI_ALL.dDate;"

blnQu = Fn_CreateQueryDef(oDb, strQueryName, strSQL)

strQueryName = "Общее потребление NEW2"

strSQL = "SELECT RefInPJI.Ref, PJI_ALL.dDateNew, Sum(RefInPJI.Coef) AS [Sum-Coef] " & Chr(10) & Chr(13) & _

"FROM PJI_ALL RIGHT JOIN RefInPJI ON PJI_ALL.PJI = RefInPJI.PJI " & Chr(10) & Chr(13) & _

"WHERE (((PJI_ALL.dDateNew) Is Not Null)) " & Chr(10) & Chr(13) & _

"GROUP BY RefInPJI.Ref, PJI_ALL.dDateNew;"

blnQu = Fn_CreateQueryDef(oDb, strQueryName, strSQL)

End Sub

'--------------------------------------------------------------------------------------

Function Fn_CreateQueryDef(ByVal oDb As DAO.Database, _

ByVal strQueryName As String, _

ByVal strSQL As String) As Boolean

Dim objQu As QueryDef

Err.Clear

With oDb

'''удаляем записи по дате или PJI

''.Execute "DELETE * FROM " & strTb & _

'' " AS t1 WHERE Exists (SELECT * FROM " & "DelDate" & _

'' " As t2 WHERE t1." & strFldName1 & "=t2." & strFldName2 & ");"

'Set objQu = CurrentDb.QueryDefs(QueryDefs)

'.Parameters("Время_Uet").Value = "" 'назначаем параметр(по умолчанию)

'.Execute strQueryName ' выполняем запрос

Set objQu = .CreateQueryDef(strQueryName, strSQL) 'создаем запрос

End With

Set objQu = Nothing

If Len(Err.Description) = 0 Then

Fn_CreateQueryDef = True

Else

Debug.Print Err.Description

End If

End Function

'======================================================================================


Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования