dmitry » Сб янв 18, 2014 7:04 pm
Исправить так:
- Скопировать текст ниже.
- Нажать в программе Ctrl+F10,
- вставить скопированный текст, нажать "ОК".
Dim R As Predpr.TableSQL, i As Integer, TbStr As String, TbFromStr As String, QueryName As String, ParID As Integer
Dim TypeID As Integer, SQLstr As String, Q As DAO.QueryDef
For i = 1 To 4
Select Case i
Case 1
TbStr = "ArticleParamNames"
TbFromStr = "ArticleParams"
QueryName = "Param_articles_"
Case 2
TbStr = "DocumentParamNames"
TbFromStr = "DocumentParams"
QueryName = "Param_documents_"
Case 3
TbStr = "PersonParamNames"
TbFromStr = "PersonParams"
QueryName = "Param_persons_"
Case 4
TbStr = "RowParamNames"
TbFromStr = "RowParams"
QueryName = "Param_rows_"
End Select
R = DB.OpenRecordset("SELECT " & TbStr & ".*" & " FROM " & TbStr & " WHERE Flag=0")
Do While Not R.EOF
ParID = R("ID")
TypeID = R("TypeID")
Select Case TypeID
Case 7
SQLstr = "SELECT ItemID, Articles.TextName AS Val FROM " & TbFromStr & " LEFT JOIN Articles ON " & TbFromStr & ".Val_7 = Articles.ID WHERE ParamID=" & ParID
Case 8
SQLstr = "SELECT ItemID, Persons.TextName AS Val FROM " & TbFromStr & " LEFT JOIN Persons ON " & TbFromStr & ".Val_8 = Persons.ID WHERE ParamID=" & ParID
Case Else
SQLstr = "SELECT ItemID, Val_" & TypeID & " AS Val FROM " & TbFromStr & " WHERE ParamID=" & ParID
End Select
Try
If Predpr.UseSQL = False Then
Q = DB.CreateQueryDef(QueryName & ParID)
Q.SQL = SQLstr
Else
DB.Execute("CREATE VIEW " & QueryName & ParID & " AS " & SQLstr)
End If
Catch ex As System.Exception
End Try
R.MoveNext()
Loop
R.Close()
Next