
ساخت جدول مشخصات مشتری با نام Customer_info
CustomerID
CustomerCD
CustomerTel
CustomerAddress

ساخت جدول متریال یا متریال های مورد نیاز قطعه ی تولیدی با نام Pro_Requirement
Pro_Itm_CD کد قطعه فرضا 120
Pro_Itm_Mat متریال قطعه فرضا کد 120 از ترکیب یا اسمبلی چهار متریال A-D حاصل میشود.

ساخت جدول قطعه شامل کد و شرح آن فرضا
Pro_Itm_CD کد آیتم قطعه ی تولیدی فرضا کد 120
Pro_Itm_Desc شرح قطعه


ساخت جدول شامل کد مشتری کد قطعه تعداد قطعه ی موردنیاز مشتری تعداد قابل تولید ( کامل ) کسری تاریخ با نام Customer_Requirement
Pro_CustomerID
Pro_Itm_CD
Pro_Itm_Qty
Supplied چک باکس برای زمانیکه اگر حتی یک قطعه را می شد تامین کرد تیک بخورد ( فرضا در کانتینیوس فرم باتنی دارید که از طریق آن و لوپ در تعداد موردنیاز مشتری اپند انجام می گیرد )
Suppplied_Doc
Supplied_Qty

ساخت جدول شامل ثبت مواد ورودی و مواد مصرف شده برای ساخت قطعاتی که مواد اولیه ی آن کسری ندارد با نام Pro_Entry
(زمانیکه در فرم شما کار تخصیص متریال به قطعه را انجام می دهید بعد از تایید نهایی توسط کارفرما به این جدول با داکیومنت نامبری که خودتان تشخیص می دهید اپند میشود)
Pro_Itm_Mat
Pro_Itm_Type کمبو باکس شامل لیست Entry و Exit
Pro_Itm_Doc
Pro_Itm_Dt
Pro_Itm_Qty

ساخت جدول موقت یا Temp برای اضافه شدن متریال یا متریالهای قطعه کد موردنظر از جدول Pro_Requirement از آیدی ۱ تا عدد درخواست مشتری یا نام Pro_Allocative ( محتویات این جدول در هر بار تخصیص دادن باید با کوئری دیلیت حذف شوند . )
Pro_Customer_ID
Pro_Itm_ID
Pro_Itm_CD
Pro_Itm_Mat
Pro_Itm_Qty
Pro_Itm_Pos
Pro_Itm_Inventory برای این فیلد اگر نال بود ( در اولین اپند ) از کوئری Inventory بازیابی می کند و در اپند های بعدی مقدار فیلد Pro_Itm_Inventory میشود حاصل تفریق این فیلد و Pro_Itm_Qty در همین جدول موقت در صورتیکه Pro_Itm_ID برابر Dmax آیدی در همین جدول موقت باشد.
Pro_Itm_Pos اگر تفریق Inventory و Qty مثبت بود True در غیر اینصورت False در نظر می گیرد .

ساخت کوئری Inventory و کسر سام تعداد ثبت شده ی تایپ Entry و سام تعداد تخصیص یافته ی قطعه ی کامل شده با تایپ Exit از جدول Pro_Entry
اگر طبق جدول Pro_Entry عمل کنید به موجودی زیر خواهید رسید

ساخت کوئری اپند با نام Append_To_Allocative که محتویات داخل جدول Pro_Requirement را با توجه به کدقطعه و موجودی متریال مورد نیاز قطعه از کوئری Inventory به جدول موقت Pro_Allocative اضافه می کند مضاف بر اینکه به جدول موقت Id میدهد ( Pro_Itm_ID ) که از یک شروع ( Dmax در جدول موقت و با Nz اگر Null بود صفر اگر Null نبود یک شماره اضافه کند ) و به تعداد موردنیاز مشتری ختم می شود البته باید در لوپ و در فرم اجرا شود که بیشتر اضافه نکند.چیزی که باید در نظر گرفت این است که در فرم چک باکسی تعبیه گردد که در صورت تخصیص دادن حتی یک قطعه تیک خورده و از زدن باتن دوباره ی اپند جلوگیری شود .

زمانیکه اپند به تعداد قطعه ی موردنیاز مشتری به جدول موقت Pro_Allocative انجام شد میشود از این جدول کوئری نوشت که با توجه به Pro_Itm_ID کانت تعداد True ها در فیلد Pro_Itm_Pos را بدست آورد و در شرط کانت هم با Dcount تعداد متریال های ساخت یک قطعه را با توجه به کد قطعه از جدول Pro_Requirement بدست آورد ... فرض کنید تعداد متریال مورد نیاز کد قطعه ای 4 آیتم باشد ( از جدول Pro_Requirement با توجه به فیلد Pro_Itm_CD استخراج می شود ) در جدول موقت اگر تعداد هر آیدی قطعه برابر 4 بود با توجه به شرط True بعنوان یک قطعه ی کامل در نظر گرفته میشود و می توانید با Dcount در همین Pro_Itm_ID تعداد آیدی ها را بدست آورد و در نتیجه خواهید فهمید چند قطعه ی کامل برای مشتری قابل ساخت است از تعداد چیزی که سفارش داده . بعدا میتوانید با کوئری دیگری کسری های متریال در Id قطعاتی که کانت آنها با توجه به شرط True مخالف کانت متریال در جدول Pro_Requiremenr است را بدست آورید.

قدم اول در هنگام اجرای باتن پاک کردن :
("db.Execute ("Delete from Pro_Allocative
قدم دوم لوپ به تعداد فیلد Pro_Itm_Qty که 15 هست :
For i = 1 To15
("db.Execute ("Append_To_Allocative
Next






طبق کوئری 3 تعداد 8 قطعه آماده ی ساخت و تحویل به مشتریست Expr2 حاصلضرب Pro_Itm_qty متریال قطعه در تعداد تحویلی که 8 است Expr1
زمانیکه از Allocate متریال یا متریال هایی برای قطعه کد موردنظر مشتری اطمینان حاصل کردید حتی اگر یک قطعه ی کامل باشد و کارفرما هم در صورت عدم تامین سایر تعداد این قطعه کد رضایت داشته باشد در اینجا شما باید با داکیومنت نامبری خروج مواد را صادر و به جدول Pro_Entry ( محل ثبت ورود متریال و خروج متریال مورد نیاز قطعه کد مشتری ) بفرستید با یک کوئری اپند دیگر که شماره داکیومنت فرضا میشود آخرین شماره ی ثبت شده در تیپ Exit در همین جدول باضافه ی یک ، برای اینکار هم از تعداد آیدی کد قطعاتی که متریال آنها کامل شده در تعداد موردنیاز متریال آن قطعه کد در جدول Pro_Requirement استفاده می کنید.


طبق جدول Pro_Allocative در بالاتر قطعه کد 120 تعداد 7 قطعه کامل و آماده ی ساخت است و قطعه کد 8 تا 15 درمتریال D کسرس دارند که جمع کل کسری 50 قطعه است

تنظیم هر عنصربه صفر یا به "" منظور ( طول رشته به صفر ) یا آزاد کردن فضای اشغال شده )
Dim DynamicArray() As Integer ' Dynamic array.
Erase DynamicArray ' Free memory used by array.


SendMessageA HandleWindow,WindowseMessage,Wparam(ScrollBar
Constants),lparam:Null

MultipleImage
img() array : Store Image name
Redim Preserve : Store Image Name In Array Through Loop In Image Folder Using Dir
( image.Tag ( Store Img Number
Loop In Image Control And Set Picture Property To Specified Path And Image Name




First Imaging Then Executing
ImageControl: Image0 Till Image4
ImageCount :In Folder icofolder=13
Next : Tag=Tag+1
1-5
2-6
3-7
4-8
5-9
6-10
7-11
8-12
Previous : Tag=Tag-1
7-11
6-10
5-9
4-8
3-7
2-6
1-5
0-4
Last : Tag=(ImageCount-1)-4+i
8-12
First : Tag=I
0-4
For Each Ctl In Me.Detail.Controls
.
.
.
i=i+1
Next
ImageCount=i
Docmd.Rename NewName, ObjectType, OldName
Docmd.CopyObject ObjectName
Docmd.DeleteObject ObjectName
Type Of Object ... acObjectType

Commands And Functions
.RefreshRecord (DoCmd) Refresh the data in a form..Rename (DoCmd) Rename an object..RepaintObject (DoCmd) Complete any pending screen updates.Replace Replace a sequence of characters in a string..Requery Requery the data in a form or a control..Restore (DoCmd) Restore a maximized or minimized window.RGB Convert an RGB color to a number.Right Extract a substring from a string.Rnd Generate a random number.Round Round a number to n decimal places.RTrim Remove trailing spaces from a string..RunCommand Run an Access menu or toolbar command..RunDataMacro (DoCmd) Run a named data macro..RunMacro (DoCmd) Run a macro..RunSavedImportExport (DoCmd) Run a saved import or export specification..RunSQL (DoCmd) Run an SQL query.
.SetOrderBy (DoCmd) Apply a sort to the active datasheet, form or report..SetParameter (DoCmd) Set a parameter before opening a Form or Report..SetWarnings (DoCmd) Turn system messages on or off.Sgn Return the sign of a number..ShowAllRecords(DoCmd) Remove any applied filter..ShowToolbar (DoCmd) Display or hide a custom toolbar.Shell Run an executable program.
Extract Color Text / Rng As Range
(xValue=Rng.Text (Formatted Text
(For........Next ..... Len(xValue
Rng.Characters(i,1).Font.Color=VbRed
(Out=Out& Mid(xValue,i,1



منبع : اینترنت
The following function helps Excel identify if a character is a special character, like #, @, and !Function IsSpecial(strValue As String) As BooleanDim intPos As Integer(For intPos = 1 To Len(strValue(Select Case Asc(Mid(strValue, intPos, 1Case 33 To 47, 58 To 64, 91 To 96, 123 To 126IsSpecial = TrueCase ElseIsSpecial = FalseExit ForEnd SelectNextEnd Function
داکیومنت آفیس را بیشتر مطالعه کنید



در رویداد SelectionChange
Target.Characters(....).Font.Color/ColorIndex
کد اسکی اعداد در اینترنت هست ، قسمت Numpad هم کد جداگانه دارد و لوپ زدن در طول رشته در سل انتخابی

در ماژولتون و رویداد تغییرانتخابی در رنج و سل مورد نظر(Cel.Characters(i,1 داخل طول کاراکتر رنگ فونت کاراکتراگر کد اسکی آن برابر عدد بود را عوض می کنید ( راهنمایی بسیار ارزنده )
چک میکند اگر کاراکتر فرضا [Like [0-9 یا اسکی کد آن با جدول بالا یکی بود فونت آن کاراکتر تغییر بنماید.
"String= "A1B2C3D4
تصور کردیم و بعد اجرا البته کد در نت زیاده
1-لوپ زدن در طول String بالا با دستور For...Next و تابع Len
2-استفاده از تابع Mid و البته قبل از آن تعریف متغیری از نوع Boolean که اگر کاراکتر عددی در String پیدا کرد True شود ( استفاده از تابع IsNumeric برای چک کردن عددی بودن کاراکتر ) و در متغیر دیگر Store شود
در طول رشته حرکت میکند یک کاراکتر یک کاراکتر اگر عدد بود در متغیری ذخیره می کند اینجا همان Ret است و حلقه تا زمانی ادامه پیدا میکند که متغیر تعریف شده ( i ) از نوع Integer یا Long با طول رشته که در اینجا با تابع Len بدست آمده و هشت است برابر شود
تابع Mid کاراکتر یا کاراکترهای موردنظر شما را در رشته برمی گرداند قسمت اول نام رشته قسمت دوم آن Start منظور از کدام کاراکتر شروع شود و قسمت سوم آن طول یا تعداد کاراکترکه باید برگرداند است
(Len(String
CheckDigit As Boolean
((IsNumeric(Mid(String,i,1
(Ret=Ret & Mid(String,i,1
: Subsequently
Ret=1234
علامت ! منظور مخالف
علامت * هر کاراکتر یا عدد
علامت [] در این بازه تک کاراکتر فرضا *[Like [!a-c بغیر از آنهایی که کاراکتر اولشون با a یا b یا c شروع شده باشد یعنی کاراکتر اولشون شامل a تا c نباشد
علامت # اعداد
علامت ? تک کاراکتر
در VBA :
Single Character Example
if Not Varx Like "[0-9][4-5]*" Then
در Input Mask
0 ورود عدد اجباری
9 ورود عدد اختیاری
L ورود حروف و اجباری
فرض کنید در جدولی تعدادی رکورد وجود دارد که فیلدی از آن شامل کاراکتر ? است و میخواهید رکوردهایی از این فیلد که دارای آن علامت است را فیلتر کنید و این علامت ممکن است در اول وسط یا انتهای مقدار فیلد باشد . ( کاراکتر را در براکت می گذارید )
*[?]*

