View Full Version : سوال: امکان جستجو در فیلد Attachment
banihoseiny
جمعه 18 آبان 1403, 18:26 عصر
دوستان عزیز سلام. بنده به تازگی کار با اکسس را شروع کرده ام. یه فایل اکسس درست کردم که اطلاعات یه سری جزوه رو نگه داری میکنه. از جمله یه فیلد دارم که فایل Word جزوه را در او بارگذاری میکنم. آیا امکان جستجو وجود داره بتونم در بین جزوه ها به دنبال یه کلمه یا یک جمله بگردم؟ ممنون میشم راهنمایی کنید.
mazoolagh
شنبه 19 آبان 1403, 12:36 عصر
سلام و روز خوش
راه درست این هست که پیش از (یا همزمان با) attach کردن فایلهای word،
متن اون رو در یک فیلد long text بریزین (با VBA و نه دستی).
به جز اون، برای هر فایل باید فیلدهایی مثل تاریخ، موضوع و کلیدواژه ها رو هم در نظر بگیرین،
و جستجو رو در این فیلدها انجام بدین و نه خود داکیومنت ورد.
بدون پیاده سازی اینها جستجوی مستقیم در فایل پیوست،
هم سخت تر و پیچیده هست،
هم کندتر و هم این که نهایتا به یک فایل محدود میشه،
و برای هر فایل باید جستجو تکرار بشه.
dastgerdi
شنبه 19 آبان 1403, 23:19 عصر
با سلام
از نمونه پیوست استفاده کنید
mazoolagh
یک شنبه 20 آبان 1403, 12:37 عصر
با سلام
از نمونه پیوست استفاده کنید
سلام و روز خوش
وقتی از هوش ساختگی درخواست کد میکنین،
باید خواسته خیلی دقیق مطرح بشه:
جستجو در اسم فایل پیوست شده هیچ ارتباطی با جستجو در محتوای فایل پیوست شده نداره.
banihoseiny
سه شنبه 22 آبان 1403, 05:58 صبح
جناب دستگردی ممنون از راهنماییتون. لطف کردین.
یه سئوال دیگه: نام یکی از فیلدهای جدولم را تغییر دادم ولی موقع کد نویسی اون فیلد را نمیشناسه دلیلش چیه؟
atf1379
سه شنبه 22 آبان 1403, 20:12 عصر
جناب دستگردی ممنون از راهنماییتون. لطف کردین.
سلام
ممکنه برای ما هم توضیح بدهین که به چه صورتی از نمونه جناب دستگردی استفاده کرده این که به نتیجه رسیدن ؟
dastgerdi
سه شنبه 22 آبان 1403, 21:46 عصر
درود خدمت همه عزیزان
ببخشید نمونه قبلی جهت جستجوی فایل های پیوست بود
نمونه زیر برای جستجوی یک متن در فایل های Word پیوست شده در فیلد Attachment می باشد.
mazoolagh
چهارشنبه 23 آبان 1403, 13:30 عصر
2 روز برای کپی کردن هوش ساختگی،
و پاک کردن کامنتهای اون،
و چسبوندن تبلیغ زمان زیادیه!
کد اصلی پیشنهادی هوش ساختگی که در برنامه پیوست پست شماره 7 بدون آوردن منبع کپی شده رو پایین آوردم،
ولی موضوع اصلی این نیست.
اشکال کار سر این هست که مشخصا هیچ شناختی از موقعیت های واقعی و دید عملی در این کد نیست -
برای هر جستجو باید همه فایلهای پیوست شده روی دیسک ساخته و یکی یکی در word باز بشه،
و بعد در content جستجو انجام بشه.
این پروسه در عمل کاملا غیرمنطقی هست، کافی هست تعداد و اندازه پیوست ها بیشتر باشه تا خودش رو نشون بده.
روش درست همونی هست که در پست شماره 2 گفتم
هوش ساختگی ممکنه به شما کد پیشنهاد بده،
ولی تشخیص این که کد در شرایط واقعی چه اندازه موثر و عملی هست نیاز به تجربه کافی و اشراف به همه جوانب داره که در این پاسخ نیست.
Sub SearchWordInAttachment()
Dim db As DAO.Database
Dim rs As DAO.Recordset2
Dim rsAttach As DAO.Recordset2
Dim wordApp As Object
Dim wordDoc As Object
Dim searchText As String
Dim foundText As Boolean
Dim tempFilePath As String
' Open the database
Set db = CurrentDb
' Open the recordset
Set rs = db.OpenRecordset("YourTableName")
' Loop through records
Do While Not rs.EOF
' Check if there is an attachment
If Not rs("YourAttachmentFieldName").Value Is Nothing Then
' Get the attachment field
Set rsAttach = rs("YourAttachmentFieldName").Value
' Loop through attachments (if there are multiple)
Do While Not rsAttach.EOF
' Save the attachment to a temporary file
tempFilePath = Environ("Temp") & "" & rsAttach("FileName")
rsAttach("FileData").SaveToFile tempFilePath
' Open Word application
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = False
' Open the Word document
Set wordDoc = wordApp.Documents.Open(tempFilePath)
' Search for text
searchText = "YourSearchText"
foundText = wordDoc.Content.Find.Execute(FindText:=searchText)
' Display result
If foundText Then
MsgBox "Text found in document: " & rsAttach("FileName")
Else
MsgBox "Text not found in document: " & rsAttach("FileName")
End If
' Close the Word document
wordDoc.Close SaveChanges:=False
' Quit the Word application
wordApp.Quit
' Move to the next attachment (if there are multiple)
rsAttach.MoveNext
Loop
End If
' Move to the next record
rs.MoveNext
Loop
' Clean up
rs.Close
Set rs = Nothing
Set db = Nothing
End Sub
banihoseiny
جمعه 25 آبان 1403, 17:21 عصر
جناب دستگردی سلام و عرض ادب. ممنون از وقتی که گذاشتین
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.