PDA

View Full Version : فراخوانی تصویر از مسیر نرم افزار



Milad_ATM
یک شنبه 16 مرداد 1401, 08:34 صبح
با سلام و احترام
دوستان عزیز و همیشه همراه برنامه نویس
من با روشی که در تصویر میبینید عکس یوزرهامو توی یک table ذخیره کردم
153947
حالا با استفاده از Dlookup اونرو فراخوانی و در یک فرم نمایش میدم
1-به چه روشی میتونم آدرس ذخیره شده در table رو طوری تغییر بدم که با جابجایی نرم افزارم و فولدری که حاوی عکسهای کاربرها هست بدون مشکل نرم افزار رو جابجا کنم؟
2-با توجه به قرارگیری سورس در شبکه ، پیشنهاد شما برای حفظ امنیت فولدر های کنار نرم افزار و عدم دستکاری توسط کاربرها چیه؟
153948

محمد رضا بهبودی
سه شنبه 18 مرداد 1401, 07:40 صبح
با سلام و احترام
دوست عزیز به جای عبارت آدرس فوق می توانید از این عبارت اسفاده کنید

"مابقی آدرس فایل" & "Me.Application.FollowHyperlink Me.Application.CurrentProject.path
در محل فایل اصلی یک پوشه ایجاد کنید و عکسها را در آن بریزید و در ادامه خط بالا آدرس پوشه و نام فایل را وارد کنید . از این به بعد هرجا که پوشه فایل اصلی را کپی کنید ، بازهم عکسها باز می شود .

mazoolagh
سه شنبه 18 مرداد 1401, 14:14 عصر
2-با توجه به قرارگیری سورس در شبکه ، پیشنهاد شما برای حفظ امنیت فولدر های کنار نرم افزار و عدم دستکاری توسط کاربرها چیه؟

این مورد وقتی که ابجکت هایی به صورت فایل در شبکه SHARE میشن راه قطعی و قابل اطمینانی نداره،
ولی مدیر شبکه با تنظیم موارد SECURITY میتونه بر اساس کاربر دسترسی READ ONLY بده یا POLICY هایی تعریف کنه.

راه مطمئن نگه داری اینها در خود دیتابیس (یا یک دیتابیس دیگه) است یا دسترسی از طریق سرویس (نه فایل).

Milad_ATM
چهارشنبه 19 مرداد 1401, 15:13 عصر
سلام ممنون از شما
دوست عزیز من به هرشکلی این آدرس رو تایپ کرددم جواب نگرفتم
Me.Application.FollowHyperlink Me.Application.CurrentProject.path" & "PersonalPic\1.jpg"
این به همون شکلی که شما زحمت کشیدید تایپ شده ولی فراخوانی نشد

محمد رضا بهبودی
پنج شنبه 20 مرداد 1401, 07:35 صبح
سلام وقت بخیر
دوست عزیز آدرس فایل را به این صورت بنویسید به اسلشها و گیومها دقت کنید
Me.Application.FollowHyperlink Me.Application.CurrentProject.path &"\PersonalPic\" & 1.jpg

Milad_ATM
پنج شنبه 20 مرداد 1401, 09:01 صبح
سلام وقت بخیر
دوست عزیز آدرس فایل را به این صورت بنویسید به اسلشها و گیومها دقت کنید
Me.Application.FollowHyperlink Me.Application.CurrentProject.path &"\PersonalPic\" & 1.jpg

سلام مجدد
من به این صورت موردی که شما گفتید رو پیاده کردم ولی با Error مواجه شدم .
1 :
153955
2:
153956
3:
153957

ROSTAM2
پنج شنبه 20 مرداد 1401, 09:26 صبح
سلام
اون قسمت اول آدرسو که دیگه نمی خواد ذخیره کنی.
فقط نام فایل رو ذخیره کن.
زمان لود تصویر اون قسمت اول آدرس و نام پوشه رو قبل از نامفایل استفاده کن.
زمانی که شما رشته رو با "" ذخیره می کنی رشته رو اشتباه برمی گردونه

Milad_ATM
پنج شنبه 27 مرداد 1401, 08:34 صبح
ببینید من به هر روشی که انجام دادم جواب نگرفتم
نحوه ذخیره سازی آدرسم رو که شما توضیح دادید

توضیح بیشتر اینکه من در زمان Login یوزرنیم رو به این صورت در یک متغیر ریختم :
TempVars.add "tempUser", DLookup("Username", "tblusers", "username=forms!frmlogin!txtusername")

و سپس به این شکل ازش استفاده کردم :
Me.imguser.Picture = DLookup("Photo", "tblusers", "Username = TempVars!tempUser")

متاسفانه بازهم با Runtime Error مواجه میشم
پیشاپیش ممنون از راهنمایی شما

ROSTAM2
پنج شنبه 27 مرداد 1401, 10:00 صبح
سلام.
DLookup رونمی دونم ولی برای لود تصویر اگر آدرس فایل و داشته باشی باید از تابع ("<FilePath>")LoadPicture استفاده کنی.

Milad_ATM
پنج شنبه 27 مرداد 1401, 11:51 صبح
من فقط تصویر رو میخوام در یک image Control بعد از لاگین نمایش بدم
اگر کسی راهنمایی دقیقی بکنه ممنون میشم:گریه:

Milad_ATM
پنج شنبه 27 مرداد 1401, 15:36 عصر
خب بنده خودم تونستم به نتیجه برسم و برای اینکه اگر کسی مشکل من رو داشت بتونه از این تاپیک استفاده کنه روشی که استفاده کردم رو به اشتراک میگذارم :

1-ابتدا در Table یوزرها یک فیلد Calculate ساختم و اسم فولدر کنار نرم افزارم رو بعلاوه فیلد ID هر یوزر بهم متصل کردم :
به این صورت :
153963
2-یک تصویر مناسب برای کنترل image انتخاب کردم که اگر تصویر کاربر پیدا نشد بصورت Default همون تصویر رو نشون بده .
نمونه :153964

3- در فرمی که قرار بود فراخوانی تصویر رو در یک کنترل Image انجام بدم به این صورت کدم رو نوشتم :


On Error GoTo ErrorHandler
Me.imguser.Picture = Me.Application.CurrentProject.Path & DLookup("Photo", "tblusers", "Username = TempVars!tempUser")
Exit Sub
ErrorHandler:
Resume Next

Milad_ATM
پنج شنبه 27 مرداد 1401, 17:54 عصر
در مورد روش فوق فقط یک مطلب و مشکل هست که باید مطرح بشه شاید یکی از دوستان راه حلش رو بتونن ارائه بده :

با روش فوق با هر بار فراخوانی تصویر ،یک تصویر جدید به Image gallery اضافه میشه و حجم برنامه به مرور بالا میره.
اگه کسی راه حلی داره ممنون میشم توضیح بده