PDA

View Full Version : بررسی یک کد (اجرای فرم در صورت چک کردن فیل وابسته در دو مسیر)



c4soft
شنبه 20 آذر 1389, 17:13 عصر
با سلام و عرض ادب خدمت همه ی دوستان عزیز

در کد زیر فرم Test در صورت وجود فایل msm در مسیر C:\WINDOWS\system32 اجرا میشه
سوال اینجاست
چگونه این کد رو طوری بنویسم که هم درایو C و هم درایو D رو چک کنه و درصورت true بودن نتیجه در یکی از مسیر های ذکر شده اون فرم اجرا بشه
یا در درایو C و یا در درایو E



Dim SourceFile As Integer
Dim FileAddress, FileString As String

FileAddress = "C:\WINDOWS\system32\msm"

If Len(Dir$(FileAddress)) > 0 then
Else
DoCmd.Close
DoCmd.OpenForm "Test", acNormal
End If
توضیج اینکه کد ذکر شده در چک کردن فابل در مسیر درایو C هیچ مشکلی نداره.

چندین بار هم تغییرات در کد فوق لحاظ کردم ولی متاسفانه جواب نداد
قبلا از زحمات و راهنمایی شما سپاسگذارم

anbaran
شنبه 20 آذر 1389, 18:54 عصر
دوست عزیز

به روش زیر عمل کن



Dim FileAddress1, FileAddress2 As String

FileAddress1 = "C:\WINDOWS\system32\msm"
FileAddress2 = "d:\WINDOWS\system32\msm"
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(FileAddress1) = True then
'اجرای دستور در صورت یافتن در مسیر1
Else
if fso.FileExists(FileAddress2) = True then
'اجرای دستور در صورت یافتن در مسیر2
else
'اجرای دستور در صورت نبودن فایل در هر دو مسیر
End If
End If

c4soft
شنبه 20 آذر 1389, 21:13 عصر
با سلام و تشکر
متاسفانه کار نمکنه
در صورت وجود فایل در هر دو مسیر اجرا میشه
اگه در یک مسیر اون فایل نباشه اجرا نمیشه

هدف اینه که در صورت وجود فایل در یکی از دو مسیر فرم اجرا بشه حالا یا درایو C یا درایو D

متشکرم

c4soft
یک شنبه 21 آذر 1389, 18:49 عصر
سلام
کد صحیح بدین صورته :

Dim FileAddress, FileString As String
Dim FileAddress1, FileString1 As String
FileAddress = "C:\WINDOWS\system32\msm"
FileAddress1 = "D:\WINDOWS\SYSTEM32\msm"
If Len(Dir$(FileAddress)) > 0 Or Len(Dir$(FileAddress1)) > 0 Then
Else
DoCmd.Close
DoCmd.OpenForm "Test", acNormal
End If

این پست صرفا جهت بسته شدن تاپیک ایجاد شد.
با تشکر از تمامی دوستان عزیز

mazoolagh
یک شنبه 21 آذر 1389, 21:48 عصر
شما مجبور نیستین که در تمامی درایوها دنبال مسر ویندوز بگردین. میتونین از متغیر windir برای پیدا کردن مسیر نصب ویندوز استفاده کنین.



environ("windir")
environ تابعی هست که توسط اون مقدار هر متغیر محیطی رو میتونین بگیرین. مثلا environ("username") اسم کاربر فعلی رو بهتون میده.

با اینحساب کدتون بصورت زیر خلاصه میشه:


If Len(Dir$(environ("windir") + "\system32\msm")) > 0 Then
Else
DoCmd.Close
DoCmd.OpenForm "Test", acNormal
End If