و اما عزیزانی که در محیط vba برنامه نویسی میکنن در فراخوانی DataMacro ممکن دچار مشکل بشن
فراخوانی دیتا ماکرو در vba درای دو شرطه
اول داده ست شده با هر پارامتر باید با نوع داده وارد شده با Field اصلی برابر باشه
یعنی مثلا اگر فیلدی داشته باشید که از نوع عدد باشه و بعد بخواهید با دیتا ماکرو تغییر یا اضافه کنید بهش باید حتما داده وارد شده عددی باشه
و اما اگه داده string باشه قضیه فرق میکنه باید قبل و بعد داده """" رو اضافه کنید
نکته دوم باید قبل از اجرای دیتا ماکرو تمامی پارامتر ها رو هم ست کنید
برای اینکه ساده تر بشه از این کد استفاده کنید
Public Function SetDataMacro(DataMacroName As String, Parameters, ParameterValue)
Dim i As Integer
i = 0
For Each Item In Parameters
If IsNumeric(ParameterValue(i)) = True Then
DoCmd.SetParameter Item, ParameterValue(i)
Else
DoCmd.SetParameter Item, """" & ParameterValue(i) & """"
End If
i = i + 1
Next
DoCmd.RunDataMacro DataMacroName
End Function
. برای فراخواین این فانکش هم باید مقدار رو به صورت Array وارد کنید
دقت کنید در داده وارد شده باید index پارامتر و ParameterValue باهم برابر باشند
یعنی اگر پارامتر در Array با Index شماره 0 باشه داده برابر هم باید در ParameterValue دارای Index 0 باشه
SetDataMacro "Commodity.Update", Array("IDParameters", "AvailableParameters"), _
Array(Me.cmb_Search.Column(0, Me.cmb_Search.ListIndex), _
Me.cmb_Available.Value)