Microsoft Access 掲示板

controlsourceの代入で実行時エラー '2423'

2 コメント
views
4 フォロー

「指定した式で、ドット(,)、!演算子、かっこ()の使い方が正しくありません。」
原因不明ですTT
Access2010で全フォームのテキストボックスのDlookupを作った関数Tlookupに書き換えようと思います。

Private Sub コマンド7_Click()

    Dim obj As AccessObject, dbs As Object, FrmName As String
    Dim ctl As control
    Dim CC As Integer

    Set dbs = Application.CurrentProject
    CC = 1

    For Each obj In dbs.AllForms

        FrmName = obj.Name
        If FrmName <> Me.Name Then
            DoCmd.OpenForm FrmName, acDesign, , , , acHidden
            Call FormAnal(FrmName)
            DoCmd.Close acForm, FrmName, acSaveYes
        End If
        CC = CC + 1
        Me.tbcc = CC
        DoEvents
    Next obj
    Set dbs = Nothing

    MsgBox "^^//"

End Sub

Private Sub FormAnal(frm As String)

    Dim ctl As control

    DoCmd.SetWarnings False

    For Each ctl In Forms(frm).Controls
        Select Case ctl.ControlType
           Case acTextBox
                If InStr(ctl.ControlSource, "DCount") <> 0 Then
                    ctl.ControlSource = Replace(ctl.ControlSource, "DCount", "TCount")
                End If
                If InStr(ctl.ControlSource, "DLookUp") <> 0 Then
                    ctl.ControlSource = Replace(ctl.ControlSource, "DLookUp", "TLookUp")
                End If
        End Select
    Next
    Set ctl = Nothing

    DoCmd.SetWarnings True

End Sub

上記コードでDCountをTCountに変更はうまくいくのですが、
DLookUPをTLookUPに変更時エラーになります。

?ctl.ControlSource
=DLookUp("担当者名","M_担当者マスタ","担当コード='" & TempVars("G_ID").[Value] & "'")

でその時の
?Replace(ctl.ControlSource, "DLookUp", "TLookUp")
=TLookUp("担当者名","M_担当者マスタ","担当コード='" & TempVars("G_ID").[Value] & "'")

どなたか親切な人教えていただけないでしょうかm(__)m

スナフキン
作成: 2020/02/26 (水) 10:20:45
通報 ...
1
スナフキン 2020/02/26 (水) 11:23:55 28f67@06760

自己解決しました。
TempVars("G_ID").[Value] の「.」が都合悪いみたいです。
なので.[Value]を消しました^^;;

ctl.ControlSource = Replace(ctl.ControlSource, "DLookUp", "TLookUp")

ctl.ControlSource = Replace(Replace(ctl.ControlSource, "DLookUp", "TLookUp"), ").[Value]", ")")
としました。

エラーの原因は不明ですが...