Èçìåíåíèå ñîáûòèé ôîðì â öèêëå |
Dim qd As QueryDef, rst As Recordset, like_str As String, NewSQL As String, frm As Object, ctrl As Control Set rst = CurrentDb.OpenRecordset("SELECT FORM_NAME, OLD_Source FROM Îáúåêò_ïðîãðàììû WHERE left([OLD_Source], 2)= 'Ò_'") While Not rst.EOF If rst![OLD_Source] <> "" Then like_str = "*" & rst![OLD_Source] & "*" For Each qd In CurrentDb.QueryDefs If Left(qd.Name, 1) <> "~" Then If qd.SQL Like like_str Then NewSQL = replace(qd.SQL, " " & rst![OLD_Source] & " ", " Ò_" & rst![FORM_NAME] & " ") NewSQL = replace(NewSQL, "=" & rst![OLD_Source] & ".", "=Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "(" & rst![OLD_Source] & ".", "(Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "(" & rst![OLD_Source] & " ", "(Ò_" & rst![FORM_NAME] & " ") NewSQL = replace(NewSQL, " " & rst![OLD_Source] & ".", " Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "[" & rst![OLD_Source] & "]", "[Ò_" & rst![FORM_NAME] & "]") qd.SQL = NewSQL Debug.Print rst![OLD_Source], qd.SQL End If End If Next End If rst.MoveNext Wend rst.CLOSE For Each frm In CurrentProject.AllForms DoCmd.OpenForm frm.Name, acDesign, , , , acHidden Set rst = CurrentDb.OpenRecordset("SELECT FORM_NAME, OLD_Source FROM Îáúåêò_ïðîãðàììû WHERE left([OLD_Source], 2)= 'Ò_'") While Not rst.EOF If rst![OLD_Source] <> "" Then NewSQL = replace(Forms(frm.Name).RecordSource, " " & rst![OLD_Source] & " ", " Ò_" & rst![FORM_NAME] & " ") NewSQL = replace(NewSQL, "=" & rst![OLD_Source] & ".", "=Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "(" & rst![OLD_Source] & ".", "(Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "(" & rst![OLD_Source] & " ", "(Ò_" & rst![FORM_NAME] & " ") NewSQL = replace(NewSQL, " " & rst![OLD_Source] & ".", " Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "[" & rst![OLD_Source] & "]", "[Ò_" & rst![FORM_NAME] & "]") Debug.Print Forms(frm.Name).RecordSource, NewSQL Forms(frm.Name).RecordSource = NewSQL For Each ctrl In Forms(frm.Name).Controls If ctrl.ControlType = acComboBox Or ctrl.ControlType = acListBox Then If ctrl.RowSource <> "" Then DoEvents NewSQL = replace(ctrl.RowSource, " " & rst![OLD_Source] & " ", " Ò_" & rst![FORM_NAME] & " ") '.ControlSource NewSQL = replace(NewSQL, "=" & rst![OLD_Source] & ".", "=Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "(" & rst![OLD_Source] & ".", "(Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "(" & rst![OLD_Source] & " ", "(Ò_" & rst![FORM_NAME] & " ") NewSQL = replace(NewSQL, " " & rst![OLD_Source] & ".", " Ò_" & rst![FORM_NAME] & ".") NewSQL = replace(NewSQL, "[" & rst![OLD_Source] & "]", "[Ò_" & rst![FORM_NAME] & "]") Debug.Print ctrl.RowSource, NewSQL ctrl.RowSource = NewSQL End If End If Next End If rst.MoveNext Wend CloseObject acForm, frm.Name, , True Next
http://www.sql.ru/forum/1165903/izmenenie-sobytiy-form-v-cikle
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |