PDA

View Full Version : مبتدی: درخواست کمک



Fartash
دوشنبه 17 دی 1397, 17:31 عصر
با سلام و عرض ادب خدمت دوستان گرامی
من میخوام برای نام گذاری بر روی کامپیوتر های شرکتمون از اکسس استفاده کنم . بدین صورت که میخوام با توجه به تقسیم بندی که انجام دادم ( مثلا جدول مکان ، جدول مدیریت ، و.... ) هر کدام یک شناسه خود را داشته باشند ( البته فایل جداول رو ضمیمه کردم) یعنی به این صورت که در فرم کاربر بتونه با انتخاب هریک از موارد "کد" یا شناسه مورد نظر توسط اکسس تولید بشه. مثلا طبق جداول پیوست اگر بخوام برای ( تعمیرگاه شماره یک - مدیریت ارشد - دفتر مدیر عامل ) یه شناسه ایجاد بشه قاعدتا باید به من شماره "10101" رو بده که در انتهاش باید یه عدد دو رقمی هم از 00 تا 99 اختصاص بده یعنی اینکه در دفتر مدیر عامل امکان داره چند تا کامپیوتر وجود داشته باشه که در این صورت عدد ما باید بشه 1010100
امیدوارم تونسته باشم منظورم رو رسونده باشم و ممنون میشم اگر راهنمایی بفرمائید . با تشکر از شما دوستان

mazoolagh
سه شنبه 18 دی 1397, 12:15 عصر
ظاهرا شناسه چهار بخش داره که سه بخش رو باید از طریق کموباکس پر کنین و از این کمبوها دوتاش وابسته هستن (cascaded) و بخش چهارم که شماره ردیف هست به ازای هر سه بخش مستقل هست.
درسته؟

خب برای کمبوهای وابسته که اینجا بقدر کافی نمونه هست. برای ساخت ردیف هم کافی هست هنگام ثبت رکورد، آخرین ردیفی که متناظر با این سه کمبو هست رو پیدا کنین و یکی بهش اضافه کنین. برای این هم همین چند روز پیش تاپیک بود اینجا.

Fartash
سه شنبه 18 دی 1397, 12:46 عصر
با سلام و عرض ادب خدمت شما دوست گرامی . جسارتا میتونید از روی جداولی که من ساختم در فایل پیوست روال کار رو یکبار به من توضیح بدین . ممنون میشم .

mazoolagh
چهارشنبه 19 دی 1397, 11:35 صبح
سلام
جداولی که گذاشتین طراحیش اشکال داره
یک نمونه دیگه میگذارم

Fartash
پنج شنبه 20 دی 1397, 07:30 صبح
با سلام و عرض ادب
خیلی خیلی ممنونم . لطف میکنید . تشکر :لبخندساده:

mazoolagh
یک شنبه 23 دی 1397, 12:56 عصر
طراحی جداول رو از نمونه پیوست الگو بگیرین:
149591

mazoolagh
یک شنبه 23 دی 1397, 12:58 عصر
این کدها کاربرد آموزشی دارن و در عمل قسمتهایی از اون حذف میشن - بعنوان مثال اینجا همزمان با هر انتخاب مقدار سریال نامبر آپدیت میشه و اگر بخشی از اون نامعین باشه با ؟ پر میشه که در عمل نیازی نیست.


Option Compare Database
Option Explicit
Const CIDQRY As String = "SELECT ProductID,ProductName FROM Products WHERE CategoryID=@CID ORDER BY ProductName"
Private Sub CategoryID_AfterUpdate()
Me.ProductID.RowSource = Replace(CIDQRY, "@CID", Me.CategoryID)
Me.ProductID.Requery
Me.ProductID = Null
Make_Serial
End Sub
Private Sub CategoryID_NotInList(NewData As String, Response As Integer)
Response = acDataErrContinue
Me.CategoryID.Undo
Me.CategoryID.Dropdown
End Sub
Private Sub CustomerID_AfterUpdate()
Make_Serial
End Sub
Private Sub CustomerID_NotInList(NewData As String, Response As Integer)
Response = acDataErrContinue
Me.CustomerID.Undo
Me.CustomerID.Dropdown
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Nz(Me.CustomerID, "?????") = "?????" Then Cancel = True
If Nz(Me.CategoryID, -1) = -1 Then Cancel = True
If Nz(Me.ProductID, -1) = -1 Then Cancel = True
If Cancel Then MsgBox ("Fill all the required fields")
End Sub
Private Sub Form_Current()
If Me.NewRecord Then
Me.ProductID.RowSource = "Products"
Else
Me.ProductID.RowSource = Replace(CIDQRY, "@CID", Me.CategoryID)
End If
Me.ProductID.Requery
End Sub
Private Sub ProductID_AfterUpdate()
Make_Serial
End Sub
Private Sub ProductID_NotInList(NewData As String, Response As Integer)
Response = acDataErrContinue
Me.ProductID.Undo
Me.ProductID.Dropdown
End Sub
Sub Make_Serial()
Dim CST, CTG, PRD, SEQ As String
CST = Nz(Me.CustomerID, "?????")
Me.CategoryID = Nz(Me.CategoryID, "-1")
Me.ProductID = Nz(Me.ProductID, "-1")
SEQ = 1 + Nz(DMax("Sequence", "Items", "CustomerID='" & Me.CustomerID & "' AND CategoryID=" & Me.CategoryID & " AND ProductID=" & Me.ProductID), 0)
If Me.CustomerID = "?????" Then
SEQ = "???"
End If
If Me.CategoryID = -1 Then
CTG = "??"
SEQ = "???"
Else
CTG = Format(Me.CategoryID, "00")
End If
If Me.ProductID = -1 Then
PRD = "??"
SEQ = "???"
Else
PRD = Format(Me.ProductID, "00")
End If
If SEQ = "???" Then
Me.Sequence = Null
Else
Me.Sequence = SEQ
End If
Me.Serial = CST & "_" & CTG & "_" & PRD & "_" & Format(SEQ, "000")
End Sub

mazoolagh
یک شنبه 23 دی 1397, 12:59 عصر
نمونه ای از نتایج :
149592

mazoolagh
یک شنبه 23 دی 1397, 13:00 عصر
دیتابیس نمونه:

Fartash
سه شنبه 25 دی 1397, 08:07 صبح
با سلام و عرض ادب
قبل از هر چیز از بابت وقت و انرژی که گذاشتین از شما دوست گرامی کمال تشکر و رو بجا می آورم . من یه بررسی بکنم فایل رو نتیجه رو خدمتتون منعکس میکنم . ممنونم

Fartash
سه شنبه 16 بهمن 1397, 12:00 عصر
با سلام و عرض ادب
از بابت زحماتی که کشیدید کمال تشکر را بجا می آورم . ممنون

mazoolagh
چهارشنبه 17 بهمن 1397, 12:53 عصر
ضمن سلام متقابل براتون آرزوی موفقیت دارم