View Full Version : لیست فایلها در جدول
فردان فردان
چهارشنبه 15 مهر 1394, 09:12 صبح
برای اینکه بتوانیم یک لیست از فایل های یک دایرکتوری را در یک جدول اکسس داشته باشیم چه راه حلی پیشنهاد می دهید.
اگر راه حل مسقیمی ندارد، می خواهم به طور غیر مستقیم با برنامه نویسی این کار را انجام دهم
توضیح:
در کامند ویندوز با این دستور می توانیم کل فایلهای یک دایرکتوری را در یک فایل ذخیره کنیم
dir/s g:\azmayesh >fil.txt
این دستور باعث می شود کل فایلهای موجود در دایرکتوری azmayesh در فایل fil.txt ذخیره شود.
حالا این کارها را می خواهم با نوشتن کد در اکسس انجام بدهم که در آخر دیگر ساده است که فایل تکس ایجاد شده را به جدول تبدیل کرد.
alirezabahrami
چهارشنبه 15 مهر 1394, 11:40 صبح
برای اینکه بتوانیم یک لیست از فایل های یک دایرکتوری را در یک جدول اکسس داشته باشیم چه راه حلی پیشنهاد می دهید.
اگر راه حل مسقیمی ندارد، می خواهم به طور غیر مستقیم با برنامه نویسی این کار را انجام دهم
توضیح:
در کامند ویندوز با این دستور می توانیم کل فایلهای یک دایرکتوری را در یک فایل ذخیره کنیم
dir/s g:\azmayesh >fil.txt
این دستور باعث می شود کل فایلهای موجود در دایرکتوری azmayesh در فایل fil.txt ذخیره شود.
حالا این کارها را می خواهم با نوشتن کد در اکسس انجام بدهم که در آخر دیگر ساده است که فایل تکس ایجاد شده را به جدول تبدیل کرد.
سلام
حالا چرا از فایل تکست برای اینکار میخواهید استفاده کنید ؟ چرا مستقیماً با استفاده از یک تابع ، فایل های یک دایرکتوری را به جدول برنامه ات منتقل نمی کنید ؟
یا علی
فردان فردان
شنبه 18 مهر 1394, 05:39 صبح
من بلد نیستم.
لطفا راهش را بفرمایید. ممنون می شم.
alirezabahrami
یک شنبه 19 مهر 1394, 07:14 صبح
من بلد نیستم.
لطفا راهش را بفرمایید. ممنون می شم.
سلام
در درایو Cیک فولدر بانام 125 ایجاد کن و تعدادی فایل با هر فرمتی در داخل آن قرار بده !
از طریق تابع فایل ضمیمه شما می توانید فایل های داخل فولدر 125 در درایو C را به جدول ایمپورت نمائید.
یا علی
akbar4028
پنج شنبه 16 دی 1400, 10:37 صبح
ضمن عرض سلام و خسته نباشید این موضوع مشکل بنده هم هست ممنون از فایلتون لطفا در صورت امکان 1- لیس زیر پوشه ها رو اضافه کنید 2- ستون های آدرس فایل و تاریخ ایجاد و حجم رو تو جدول داشته باشه متشکرم
mazoolagh
شنبه 18 دی 1400, 10:05 صبح
برای گرفتن لیست کامل فایلها و ساب فولدرهای یک فولدر و همینجور مشخصات کامل اونها بهتر هست از file system object استفاده کنیم.
اول یک جدول با فیلدهای زیر میسازیم:
153646
mazoolagh
شنبه 18 دی 1400, 10:14 صبح
هر چند در ظاهر فیلدهای drive و parentfolder وقتی فقط با یک فولدر سر و کار داریم اضافی هستن، ولی چون این برنامه رو در اصل برای کار دیگه ای نوشته بودم اینجا هم آوردم.
وقتی لیست زیرشاخه های فولدر هم موردنیاز باشه به parentfolder نیاز هست؛
همچنین اگر در درایوهای مختلف دنبال فایلهای خاصی باشیم فیلد drive جستجو در جدول رو سریعتر و راحتتر میکنه هر چند که از parentfolder هم میشه اون رو بیرون کشید.
فیلدهایی که با is شروع میشن attribute های فایل/فولدر رو مشخص میکنن و بعضی از اون ها مثل is_volume رو ممکنه هیچوقت نیاز نداشته باشین یا بهش برخورد نکنین.
هر فیلدی رو که نیاز ندارین از جدول حذف کنین (و البته کد مربوط به اون).
mazoolagh
شنبه 18 دی 1400, 10:17 صبح
حالا رفرنس های موردنیاز رو اضافه میکنیم:
153647
این کار الزامی نیست ولی کد تمیزتر و خواناتری خواهیم داشت که نگهداری برنامه رو آسونتر میکنه.
mazoolagh
شنبه 18 دی 1400, 10:20 صبح
Option Compare Database
Option Explicit
Sub FolderList()
On Error GoTo Error_Handler
DoCmd.RunSQL "DELETE * FROM Files"
Dim FD As FileDialog
Set FD = Application.FileDialog(msoFileDialogFolderPicker)
If FD.Show = 0 Then Exit Sub
Dim FS As New FileSystemObject
Dim SelectedFolder As Folder
Set SelectedFolder = FS.GetFolder(FD.SelectedItems(1))
Set FS = Nothing
GetItems SelectedFolder.Files
GetItems SelectedFolder.SubFolders
MsgBox "Done"
Exit Sub
Error_Handler:
MsgBox Err.Description, vbCritical, Err.Number
End Sub
Function GetItems(Items As Variant)
On Error GoTo Error_Handler
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Files")
Dim Item
For Each Item In Items
With rs
.AddNew
!FileName = Item.Name
!FileType = Item.Type
!Size = Item.Size
!Drive = Item.Drive
!ParentFolder = Item.ParentFolder
!Is_Normal = Item.Attributes And 0
!Is_ReadOnly = Item.Attributes And 1
!Is_Hidden = Item.Attributes And 2
!Is_System = Item.Attributes And 4
!Is_Volume = Item.Attributes And 8
!Is_Directory = Item.Attributes And 16
!Is_Archive = Item.Attributes And 32
!Is_Alias = Item.Attributes And 1024
!Is_Compressed = Item.Attributes And 2048
!DateCreated = Item.DateCreated
!DateLastModified = Item.DateLastModified
!DateLastAccessed = Item.DateLastAccessed
.Update
End With
Next Item
rs.Close
Set rs = Nothing
Exit Function
Error_Handler:
Debug.Print Item.Name
Resume Next
End Function
mazoolagh
شنبه 18 دی 1400, 10:24 صبح
رفرنس file system object برای مطالعه بیشتر و درک بهتر کدهای برنامه:
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/filesystemobject-object
mazoolagh
شنبه 18 دی 1400, 10:26 صبح
برنامه نمونه:
akbar4028
یک شنبه 19 دی 1400, 11:33 صبح
خیلی لطف کردید کامل بود متشکرم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.