「指定した式で、ドット(,)、!演算子、かっこ()の使い方が正しくありません。」
原因不明です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
自己解決しました。
TempVars("G_ID").[Value] の「.」が都合悪いみたいです。
なので.[Value]を消しました^^;;
ctl.ControlSource = Replace(ctl.ControlSource, "DLookUp", "TLookUp")
を
ctl.ControlSource = Replace(Replace(ctl.ControlSource, "DLookUp", "TLookUp"), ").[Value]", ")")
としました。
エラーの原因は不明ですが...