PDA

View Full Version : سوال: چگونه در مسیر برنامه فودر دلخواه با نام دلخواه بسازیم ؟



narpco
پنج شنبه 10 مهر 1399, 15:54 عصر
سلام روز بخیر
یک فایل داریم داخلش یک جدول هست دارای فیلد های :
ID کد نام و نام خانوادگی
در فرم اصلی برنامه که بر مبنای جدول ساخته شده دو عدد دکمه وجود دارد

مرحله اول:
از طریق دکمه 001 میخواهیم در مسیر برنامه فولدری ساخته شود که نام فولدر باید ترکیبی از کد +نام +نام خانوادگی باشد
مثال : علی محمدی – 100
البته اول باید کنترل کنه که فولدری با این نام وجود نداشته باشه بعد بسازه

مرحله دوم :
از طریق دکمه 002 می خواهیم وارد فولدری شویم که ساخته ایم


فایل نمونه در لینک زیر میباشد
http://s15.picofile.com/file/8409717268/make_folder.rar.html (http://s15.picofile.com/file/8409717268/make_folder.rar.html)



با سپاس

eb_1345
جمعه 11 مهر 1399, 01:26 صبح
سلام روز بخیر
یک فایل داریم داخلش یک جدول هست دارای فیلد های :
ID کد نام و نام خانوادگی
در فرم اصلی برنامه که بر مبنای جدول ساخته شده دو عدد دکمه وجود دارد

مرحله اول:
از طریق دکمه 001 میخواهیم در مسیر برنامه فولدری ساخته شود که نام فولدر باید ترکیبی از کد +نام +نام خانوادگی باشد
مثال : علی محمدی – 100
البته اول باید کنترل کنه که فولدری با این نام وجود نداشته باشه بعد بسازه

مرحله دوم :
از طریق دکمه 002 می خواهیم وارد فولدری شویم که ساخته ایم


فایل نمونه در لینک زیر میباشد
http://s15.picofile.com/file/8409717268/make_folder.rar.html (http://s15.picofile.com/file/8409717268/make_folder.rar.html)



با سپاس



سلام
لطفاً نمونه اصلاح شده خودتان را بررسی نمائید !
ضمناً با توجه عدم شناخت ویندوز مسیرهای فارسی که در آن ی و ک بکار رفته باشد بنده در رویداد Form_KeyPress کدی برای تبدیل این دو حروف به عربی ي و ك درج کرده ام
بدیهیست تغییر این حروف زمانی که در حال ورود اطلاعات هستی صورت می گیرد . بنابراین رکوردهائی که نام و نام خانوادگی دارای حروف ی و ک فارسی است باید یکبار دیگر آنها را از تکست باکس های مربوطه پاک و دوباره وارد کنید که با کد مربوطه ی و ک بطور اتوماتیک تبدیل به ي و ك عربی میشوند .

narpco
جمعه 11 مهر 1399, 14:40 عصر
سلام بسیار سپاس .مثل همیشه دقیق ، فنی و با نگاهی جامع .......

narpco
شنبه 12 مهر 1399, 10:43 صبح
سلام و یک سئوال اگر بخواهیم بگوییم در مسیر برنامه و زیر پوشه member این عملیات ایجاد و کنترل رو انجام بده این کد چطوری تغییر می کنه ...ممنونم

strfolder = member_codeozviat & "_" & member_name & "_" & member_fname
If Len(Dir(Application.CurrentProject.Path & "" & strfolder & "", vbDirectory)) > 0 Then
MsgBox " !ÞÈáÇð æÔå Çí ÈÇ äÇã " & strfolder & " ÇíÌÇÏ ÔÏå ", vbInformation, "ÊæÌå"
Exit Sub
Else
MkDir Application.CurrentProject.Path & "" & strfolder & ""
MsgBox " ! æÔå Çí ÈÇ äÇã " & strfolder & " ÏÑ ãíÓÑ ÈÑäÇãå ÇíÌÇÏ ÔÏ ", vbInformation, "ÊæÌå"


endif

narpco
شنبه 12 مهر 1399, 12:04 عصر
اول اینو بگم که برنامه نوشته شده نمونه --در هر دو بخش ---ایجاد و مشاهده پوشه ----بدرستی کار میکنه و هیچ مشکلی نداره

من کد رو در برنامه خودم استفاده کردم و بخش اول که پوشه رو میسازه هم بدرستی کار می کنه ...***

مشکل در بخش دوم هست که وقتی بهش میگیم پوشه ساخته شده رو باز کن.....بجای فولدر ساخته شده ... MYDOCUMENT رو باز می کنه

من تنها تغییری که در کد ها دادم سه نام فیلدی هست که از روش نام فولدر ساخته میشه

در برنامه من کدی که فولدر رو باز می کنه طبق تصویر زیر هست


Private Sub btn_see_folder_Click()



Dim str_folder As String

strfolder = member_codeozviat & "-" & member_name & "-" & member_fname




If Len(Dir(Application.CurrentProject.Path & "" & strfolder & "", vbDirectory)) > 0 Then

str_folder = CurrentProject.Path & "" & strfolder ' folder to open

Call shell("explorer.exe " & str_folder, vbNormalFocus)

End If

End Sub

آدرس فایل برنامه ما به شرح زیر است :
E:\Mohasebmirza\incom

نمیدونم نیاز هست یا نه ولی اینم کدی که که بدرستی نام فولدر رو میسازه :
Private Sub btn_make_folder_Click()
strfolder = member_codeozviat & "-" & member_name & "-" & member_fname
If Len(Dir(Application.CurrentProject.Path & "" & strfolder & "", vbDirectory)) > 0 Then
MsgBox " !قبلاً پوشه اي با نام " & strfolder & " ايجاد شده ", vbInformation, "توجه"
Exit Sub
Else
MkDir Application.CurrentProject.Path & "" & strfolder & ""
MsgBox " ! پوشه اي با نام " & strfolder & " در ميسر برنامه ايجاد شد ", vbInformation, "توجه"
End If




ممنون میشم راهنمایی بفرمایید اشتباه من کجاست

eb_1345
شنبه 12 مهر 1399, 12:47 عصر
سلام و یک سئوال اگر بخواهیم بگوییم در مسیر برنامه و زیر پوشه member این عملیات ایجاد و کنترل رو انجام بده این کد چطوری تغییر می کنه ...ممنونم

strfolder = member_codeozviat & "_" & member_name & "_" & member_fname
If Len(Dir(Application.CurrentProject.Path & "" & strfolder & "", vbDirectory)) > 0 Then
MsgBox " !ÞÈáÇð æÔå Çí ÈÇ äÇã " & strfolder & " ÇíÌÇÏ ÔÏå ", vbInformation, "ÊæÌå"
Exit Sub
Else
MkDir Application.CurrentProject.Path & "" & strfolder & ""
MsgBox " ! æÔå Çí ÈÇ äÇã " & strfolder & " ÏÑ ãíÓÑ ÈÑäÇãå ÇíÌÇÏ ÔÏ ", vbInformation, "ÊæÌå"


endif



سلام
با فرض اینکه میخواهید همزمان با ایجاد پوشه اصلی زیر پوشه ای با نام member ایجاد کنید کدها رو بصورت زیر تغییر دادم .




Dim strfolder As String
Dim subfolder As String
Private Sub cmdAAA_Click()
strfolder = icode & "-" & iname & " " & fname
subfolder = Application.CurrentProject.Path & "\" & strfolder & "\member"
If Len(Dir(Application.CurrentProject.Path & "\" & strfolder & "", vbDirectory)) = 0 Then
MkDir Application.CurrentProject.Path & "\" & strfolder & ""
End If
If Len(Dir(Application.CurrentProject.Path & "\" & strfolder & "", vbDirectory)) > 0 And Len(Dir(subfolder, vbDirectory)) = 0 Then
MkDir subfolder
End If
End Sub



همانطور که مشاهده می کنید در کدهای جدید پیغام ها را حذف کرده ام و بنظرم لزومی هم برای صدور پیغام وجود ندارد .
در عوض در رویداد Form_Current فرم کد زیر را قرار داده ام تا در صورت ایجاد پوشه اصلی و زیر پوشه کمند باتن غیر فعال شود




Private Sub Form_Current()
strfolder = icode & "-" & iname & " " & fname
subfolder = Application.CurrentProject.Path & "\" & strfolder & "\member"
If Len(Dir(Application.CurrentProject.Path & "\" & strfolder & "", vbDirectory)) > 0 And Len(Dir(subfolder, vbDirectory)) > 0 Then
cmdAAA.Enabled = False
Else
cmdAAA.Enabled = True
End If
End Sub


کدهای رویداد CMDBBB_Click تغییر ندادم چون تغییری برای این مورد نخواسته ای
یا علی

narpco
شنبه 12 مهر 1399, 13:12 عصر
ببخشید فولدر MEMBER از قبل وجود داره بصورت ثابت نیازی به ساخت نیست

همون نمونه اول عالی بود ----و اتفاقا به همه پیامهایی که میده نیاز داریم .....

فقط اینکه عملیات ساخت فولدر و مشاهده در زیر پوشه MEMBRER انجام بشه



If Len(Dir(Application.CurrentProject.Path &\MEMBER\ "" & strfolder & "", vbDirectory)) > 0 Then


MkDir Application.CurrentProject.Path &\MEMBER\ "" & strfolder & ""
یک همچین چیزی
میخوایم بگیم برو تو مسیری که فایل هست
برو زیر فولدر MEMBER
فولدی بساز با کد نام و نام خانوادگی

و

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


ببخشید و ممنون

eb_1345
شنبه 12 مهر 1399, 13:54 عصر
ببخشید فولدر MEMBER از قبل وجود داره بصورت ثابت نیازی به ساخت نیست

همون نمونه اول عالی بود ----و اتفاقا به همه پیامهایی که میده نیاز داریم .....

فقط اینکه عملیات ساخت فولدر و مشاهده در زیر پوشه MEMBRER انجام بشه



If Len(Dir(Application.CurrentProject.Path &\MEMBER\ "" & strfolder & "", vbDirectory)) > 0 Then


MkDir Application.CurrentProject.Path &\MEMBER\ "" & strfolder & ""
یک همچین چیزی
میخوایم بگیم برو تو مسیری که فایل هست
برو زیر فولدر MEMBER
فولدی بساز با کد نام و نام خانوادگی

و

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


ببخشید و ممنون
پس اول باید دستی پوشه ای با نام MEMBER در کنار برنامه ایجاد کنید و بعد کدهای زیر رو جایگزین کدهای قبلی در رویداد cmdAAA_Click بکنی !


strfolder = icode & "-" & iname & " " & fname
If Len(Dir(Application.CurrentProject.Path & "\MEMBER\" & strfolder & "", vbDirectory)) > 0 Then
MsgBox " ! ÞÈáÇð ÒíÑ æÔå Çí ÈÇ äÇã " & strfolder & " ÏÑ ãíÓÑ ÈÑäÇãå ÇíÌÇÏ ÔÏå ", vbInformation, "ÊæÌå"
Exit Sub
Else
MkDir Application.CurrentProject.Path & "\MEMBER\" & strfolder & ""
MsgBox " ! ÒíÑ æÔå Çí ÈÇ äÇã " & strfolder & " ÏÑ ãíÓÑ ÈÑäÇãå ÇíÌÇÏ ÔÏ ", vbInformation, "ÊæÌå"
End If

narpco
شنبه 12 مهر 1399, 14:10 عصر
بسیار ممنون مشکل حل شد


در مورد مشکل پست 5 هم ممنون میشم راهنمایی بفرمایید ...با سپاس

eb_1345
شنبه 12 مهر 1399, 14:42 عصر
بسیار ممنون مشکل حل شد


QUOTE=narpco;2435136]
مشکل در بخش دوم هست که وقتی بهش میگیم پوشه ساخته شده رو باز کن.....بجای فولدر ساخته شده ... MYDOCUMENT رو باز می کنه
ممنون میشم راهنمایی بفرمایید اشتباه من کجاست



در مورد مشکل پست 5 هم ممنون میشم راهنمایی بفرمایید ...با سپاس[/QUOTE]

این مشکل به احتمال قریب به یقین مربوط به همون مشکل پیدا کردن مسیری است که در آن از حروف فارسی مخصوصاً ی و ک استفاده شده می باشد . همانطور که قبلاً هم عرض شد یکبار نام و نام خانوادگی که در آنها حروف فوق وجود دارد رو دستی وارد کن تا توسط کدی که در رویداد Form_KeyPress تعریف شده این حروف به حروف عربی تغییر پیدا کنه

eb_1345
شنبه 12 مهر 1399, 14:49 عصر
در مورد مشکل پست 5 هم ممنون میشم راهنمایی بفرمایید ...با سپاس

این مشکل به احتمال قریب به یقین مربوط به همون مشکل پیدا کردن مسیری است که در آن از حروف فارسی مخصوصاً ی و ک استفاده شده می باشد . همانطور که قبلاً هم عرض شد یکبار نام و نام خانوادگی که در آنها حروف فوق وجود دارد رو دستی وارد کن تا توسط کدی که در رویداد Form_KeyPress تعریف شده این حروف به حروف عربی تغییر پیدا کنه [/QUOTE]

البته بنظرم میشه قبل از باز کردن پوشه کدی نوشت که اول بررسی شود آیا در نام و نام خانوادگی از حروف فارسی استفاده شده یا نه و اگر شده پیغامی صادر شود تا اول حروف اصلاح و بعد اقدام به باز شدن پوشه گردد.

eb_1345
شنبه 12 مهر 1399, 14:50 عصر
.........................

narpco
شنبه 12 مهر 1399, 15:09 عصر
بله دقیقا مشکل همون مطلبی هستکه فرمودین

مثلا مشکل در نام فرضی ......کک کاک کوکی -------یا -----علی یاری میرکریمی وجود داره

و مثلا در رضا کمال مشکلی نیست

اون کد تبدیل رو هم در ONPRESS فرم قرار دادم وحتی در BEFOR و AFTER....UPDATE

درست نشد *****نام هایی که تایپ میشوند همگی فارسی هستن نمیشه هی بگیم دستی درست کنند ......سردردگرفتم خدایی:)))

نمیدونم چرا کد تبدیل حروف عمل نمی کنه


توی اون برنامه اولی که نوشتین درست کار می کنه مشکلی نیست تو برنامه من مشکل داره

بیشتر روی حرف ی مشکل داریم که اگر SHFT+x بزنیم درست میشه ولی چطوری باید اتوماتیک کرد این کار رو

padide55
شنبه 12 مهر 1399, 15:37 عصر
https://barnamenevis.org/showthread.php?286996-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%8A-%D9%86%D9%82%D8%B7%D9%87-%D8%AF%D8%A7%D8%B1-%D9%88-%DB%8C-%D8%A8%DB%8C-%D9%86%D9%82%D8%B7%D9%87-%D8%B9%D8%B1%D8%A8%DB%8C-%D8%A8%D9%87-%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%88-%D9%83-%D8%B9%D8%B1%D8%A8%DB%8C-%D8%A8%D9%87-%DA%A9-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C

padide55
شنبه 12 مهر 1399, 15:39 عصر
اونهایی که از قبل ذخیره شده رو با find
replase کنید .
از اینجا به بعد طبق کدهای ورودی ثبت‌میشه.

padide55
شنبه 12 مهر 1399, 15:44 عصر
اونهایی که از قبل ذخیره شده رو با find
replase کنید .
از اینجا به بعد طبق کدهای ورودی ثبت‌میشه.
ضمنا کد رو در رویدادkey press فیلد مربوطه در فرم قرار بدین

eb_1345
شنبه 12 مهر 1399, 15:52 عصر
بله دقیقا مشکل همون مطلبی هستکه فرمودین

مثلا مشکل در نام فرضی ......کک کاک کوکی -------یا -----علی یاری میرکریمی وجود داره

و مثلا در رضا کمال مشکلی نیست

اون کد تبدیل رو هم در ONPRESS فرم قرار دادم وحتی در BEFOR و AFTER....UPDATE

درست نشد *****نام هایی که تایپ میشوند همگی فارسی هستن نمیشه هی بگیم دستی درست کنند ......سردردگرفتم خدایی:)))

نمیدونم چرا کد تبدیل حروف عمل نمی کنه


توی اون برنامه اولی که نوشتین درست کار می کنه مشکلی نیست تو برنامه من مشکل داره

بیشتر روی حرف ی مشکل داریم که اگر SHFT+x بزنیم درست میشه ولی چطوری باید اتوماتیک کرد این کار رو

کدهای زیر تمام حروف فارسی ی و ک را در جدول table1 تبدیل به ي و ك عربی می کند . در رویداد CMDBBB_Click در ابتدای کدها در رویداد CMDBBB_Click عبارت call CmdFldReplace درج کن
اگر جدولت نام دیگری دارد آن را جایگزین table1 کن !



Private Sub CmdFldReplace()
On Error Resume Next
Dim rs As DAO.Recordset
Dim fld As DAO.Field
Set rs = CurrentDb.OpenRecordset("Table1")
Do While Not rs.EOF
rs.Edit
For Each fld In rs.Fields
If Not IsNull(fld) Then
If InStr(fld, ChrW(1705)) Or InStr(fld, ChrW(1740)) Then Debug.Print fld
fld = Replace(fld, ChrW(1705), ChrW(1603))
fld = Replace(fld, ChrW(1740), ChrW(1610))
End If
Next
rs.Update
rs.MoveNext
Loop
rs.Close
Me.Refresh
End Sub

eb_1345
شنبه 12 مهر 1399, 15:56 عصر
https://barnamenevis.org/showthread.php?286996-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%8A-%D9%86%D9%82%D8%B7%D9%87-%D8%AF%D8%A7%D8%B1-%D9%88-%DB%8C-%D8%A8%DB%8C-%D9%86%D9%82%D8%B7%D9%87-%D8%B9%D8%B1%D8%A8%DB%8C-%D8%A8%D9%87-%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%88-%D9%83-%D8%B9%D8%B1%D8%A8%DB%8C-%D8%A8%D9%87-%DA%A9-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C


اونهایی که از قبل ذخیره شده رو با find
replase کنید .
از اینجا به بعد طبق کدهای ورودی ثبت‌میشه.


اونهایی که از قبل ذخیره شده رو با find
replase کنید .
از اینجا به بعد طبق کدهای ورودی ثبت‌میشه.
ضمنا کد رو در رویدادkey press فیلد مربوطه در فرم قرار بدین

به این مورد در پست شماره 2 اشاره شده !

narpco
شنبه 12 مهر 1399, 17:59 عصر
سلام روی دیتا بیسی با تعداد 1000 رکورد تست کردم بسیار عالی و در کسری از زمان کارمیکنه
واقعا سپاسگزارم که این همه وقت گذاشتین

دیگه هرگونه خطای کاربر با اون روالی که نوشتین و ما CALL می کنیم برطرف میشه

خیلی موضوع مهمی است در بانک های اطلاعاتی که عضو دارن یا پرسنل دارن و این پرسنل باید هرکدوم فولدری جدا داشته باشن برای نگهداری عکس مدارک هویتی و تحصیلی و سایر مدارک مورد نیاز
تا الان کاربر مجبور بود دستی فولدر بسازه و کلی داستان داشتیم بعدا سر پیدا کردن فولدر طرف میان 1000 تا پوشه

بازهم سپاسگزارم .....خیلی محبت کردین .....

eb_1345
شنبه 12 مهر 1399, 18:06 عصر
سلام روی دیتا بیسی با تعداد 1000 رکورد تست کردم بسیار عالی و در کسری از زمان کارمیکنه
واقعا سپاسگزارم که این همه وقت گذاشتین

دیگه هرگونه خطای کاربر با اون روالی که نوشتین و ما CALL می کنیم برطرف میشه

خیلی موضوع مهمی است در بانک های اطلاعاتی که عضو دارن یا پرسنل دارن و این پرسنل باید هرکدوم فولدری جدا داشته باشن برای نگهداری عکس مدارک هویتی و تحصیلی و سایر مدارک مورد نیاز
تا الان کاربر مجبور بود دستی فولدر بسازه و کلی داستان داشتیم بعدا سر پیدا کردن فولدر طرف میان 1000 تا پوشه

بازهم سپاسگزارم .....خیلی محبت کردین .....
خواهش می کنم
فقط من موردی یادم افتاد بپرسم و اون اینکه در رویداد ورود به فولدر ساخته شده شما میخواهید فولدر اصلی که نامش MEMBER است باز شود یا زیر فولدر که دارای نام ترکیبی است ؟

narpco
شنبه 12 مهر 1399, 18:41 عصر
خواهش می کنم
فقط من موردی یادم افتاد بپرسم و اون اینکه در رویداد ورود به فولدر ساخته شده شما میخواهید فولدر اصلی که نامش MEMBER است باز شود یا زیر فولدر که دارای نام ترکیبی است ؟


هدف ما باز شدن -- فولدر که دارای نام ترکیبی است ----می باشد
و الان به درستی و باید حق مطلب رو بگم که به زیبایی کار می کند .....