شما هر سناریویی که تصور کنین مستلزم این هست که یک ارتباط منطقی بین هر قطعه از نقشه با رکورد متناظر با اون برقرار کنین و این کار هم دستی باید انجام بشه.
مگر اینکه نقشه توسط نرم افزاری تهیه شده باشه که خود هر قطعه رو بشه بصورت یک موجودیت باهاش کار کرد.
ساده ترین (و سریعترین) راه بنظرم این هست که برای هر قطعه از نقشه یک تصویر هایلایت شده (یا هاشور خورده یا هر روش دیگه برای متمایز کردن) تهیه کنین و بعد از این دیگه عملیات خیلی ساده است.
m0.png
m1.png
و البته میشه یک تصویر دیگه هم بسازین که فقط جزئیات قطعه مورد نظر رو نشون بده:
z1.png
حالا کافی هست تمام این تصاویر رو در یک فولدر بریزین و اسامی اونها رو هم بر اساس ID رکورد قطعه متناظر تعریف کنین:
files.png
در واقع تمام کارها خارج اکسس باید انجام بشه و کل کد مورد نیاز چند خط بیشتر نیست:
Option Compare Database
Option Explicit
Private MapsFolder As String
Private Sub Form_Open(Cancel As Integer)
MapsFolder = CurrentProject.Path + "\Maps\"
Me.Map.Picture = MapsFolder + "m0.png"
End Sub
Private Sub Lands_AfterUpdate()
Me.Map.Picture = MapsFolder + "m" + Trim(Me.Lands) + ".png"
End Sub
Private Sub Zoom_Click()
Me.Map.Picture = MapsFolder + "z" + Trim(Me.Lands) + ".png"
End Sub