PDA

View Full Version : کنترل فایل موجود



MMR_1344
شنبه 13 بهمن 1386, 07:49 صبح
با سلام به تمامی دوستان گرامی
من برنامه ای نوشتم که اطلاعاتی رو در یک فایل اکسل وارد میکنه هر بار برای ایجاد اون پنجره ای باز شده و نام جدید میخواد
مشکل من اینه که اگر نام ورودی با نام موجود قبلی یکی باشه مجدداً اون فایل رو مینویسه چه جوری میشه اون رو به کاربر اعلام بکنه که درصورت نیاز اون رو مجدداً باز نویسی کنه

majjjj
شنبه 13 بهمن 1386, 09:24 صبح
با سلام به تمامی دوستان گرامی
من برنامه ای نوشتم که اطلاعاتی رو در یک فایل اکسل وارد میکنه هر بار برای ایجاد اون پنجره ای باز شده و نام جدید میخواد
مشکل من اینه که اگر نام ورودی با نام موجود قبلی یکی باشه مجدداً اون فایل رو مینویسه چه جوری میشه اون رو به کاربر اعلام بکنه که درصورت نیاز اون رو مجدداً باز نویسی کنه
با


FileSystemObject



Microsoft Scripting Runtime



البته باید ریفرنس بالا رو اضافه کنید


این هم یک نمونه



Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Sub Form_Load()
Dim fs As New FileSystemObject
Dim int_number As Long
Dim int_drive As Long
Dim drive As String
Dim t_f As Boolean
For int_drive = 67 To 90
drive = Chr(int_drive) & ":"
Label1.Caption = drive & " " & " ÏÑÇíæ ÝáÔ "
int_number = GetDriveType(drive)
If int_number = 2 Then
On Error GoTo next1
t_f = fs.FileExists(drive & "\pis_mar1.mdb")
If t_f = False Then
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar1.mdb"
Exit For
End If
t_f = fs.FileExists(drive & "\pis_mar2.mdb")
If t_f = False Then
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar2.mdb"
Exit For
End If
t_f = fs.FileExists(drive & "\pis_mar3.mdb")
If t_f = False Then
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar3.mdb"
Exit For
End If
t_f = fs.FileExists(drive & "\pis_mar4.mdb")
If t_f = False Then
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar4.mdb"
Exit For
End If
t_f = fs.FileExists(drive & "\pis_mar5.mdb")
If t_f = False Then
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar5.mdb"
Exit For
End If
t_f = fs.FileExists(drive & "\pis_mar6.mdb")
If t_f = False Then
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar6.mdb"
Exit For
End If
t_f = fs.FileExists(drive & "\pis_mar7.mdb")
If t_f = False Then
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar7.mdb"
Exit For
End If
FileCopy "C:\proje1\pis_mar.mdb", drive & "\pis_mar1.mdb"
Exit For
End If
Next
next1:
End Sub

البته براتون تابع api اون رو هم در مبحث مرجع تخصصی api براتون میگذارم فقط صبر کنید

MMR_1344
شنبه 13 بهمن 1386, 13:45 عصر
دوست عزیز از راهنمائیت متشکرم من اون رو کنترل میکنم اگر مشکلم حل شد حتماً اعلام میکنم

به هر حال از لطف شما دوست عزیز بسیار سپاسگذارم

bobrus
شنبه 13 بهمن 1386, 14:02 عصر
دوست عزیز راه حل ساده تری هم هست
شما با دستور زیر می تونی کنترل کنی که نام فایلی رو که از کاربر گرفتی تو مسیر وجود داره یا نه؟


FileExist=dir(Path & FileName)

که بعداز این دستور اگر مقدار fileExist با FileName که از کاربر گرفتی برابر باشه یعنی فایلی با این نام در مسیر مورد نظر وجود داره که باید با یه پیغام مناسب به کار بر اطلاع بدی
به همین سادی . . . به همین خوشمزگی. . .

MMR_1344
شنبه 13 بهمن 1386, 14:35 عصر
متشکر از محبت تمامی دوستان

از محبتی که تمامی دوستان دارند بسیار سپاسگذارم و امیدوارم همواره موفق و پیروز در کارهای خود باشند