-

   rss_sql_ru_access_programming

 - e-mail

 

 -

 LiveInternet.ru:
: 16.03.2006
:
:
: 4

:


, 14 2015 . 15:57 +
.
, " ".
, SQL , .
.
. , , .

   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

.

Forms(i).SourceCode("_Click") = " VBA"
?

http://www.sql.ru/forum/1165903/izmenenie-sobytiy-form-v-cikle


: [1] []
 

:
: 

: ( )

:

  URL