تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 5 از 5

نام تاپيک: آموزش Access

  1. #1
    ناظر انجمن مباحث عمومی نرم‌افزار Mohammad King's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    Markazi-Arak
    پست ها
    6,470

    پيش فرض آموزش Access

    تعريف كلي از اكسسAccess
    اكسس ابزاري براي توليد بانكهاي اطلاعاتي رابطه اي است. بانكهاي اطلاعاتي امكان گردآوري انواع اطلاعات را براي ذخيره ‌سازي ،جستجو و بازيابي فراهم مي‌كند.

    اجزا بانك اطلاعاتي اكسس عبارتند از:

    DataBase:

    1. Table
    2. Query
    3. Form
    4. Report
    5. Macros
    6. Modules

    • ‏‏Table :(جدول ) هر جدول براي نگهداري داده‌هاي خام بانك اطلاعاتي است.داده‌ها را شما در جدول وارد مي‌كنيد.جداول سپس اين داده‌ها را به شكل سطرها و ستونهايي سازماندهي ميكند.

    • Query :هر پرس و جو براي استخراج اطلاعات مورد نظر از يك بانك اطلاعاتي مورد استفاده قرار مي‌گيردهر پرس و جو مي‌تواند گروهي از ركوردها را كه شرايط خاص دارا هستند انتخاب كند.پرس و جوها را مي‌توان بر اساس جداول يا پرس و جوهاي ديگر اماده نمود. با استفاده از پزس‌وجوها مي‌توان ركوردهاي بانك اطلاعاتي را انتخاب كرد، تغيير داد و يا حذف نمود.

    • Form :متداولترين روش استفاده از فرمها،براي ورود و نمايش داده‌ها است.

    • Report :گزارش ها مي‌توانند بر اساس جدول ،پرس‌وجوها باشند ،قابليت گزارش چاپ داده‌ها مي‌باشدگزارشها را مي‌توان بر اساس چند جدول و پرس‌وجو تهيه نمود تا رابطه بين داده‌ها را نشان داد.

    • Macro :ماكروها به خودكار كردن كارهاي تكراري ،بدون نوشتن برنامه‌هاي پيچيده يا فراگيري يك زبان برنامه نويسي ، ياري مي‌كند، در واقع ماكروها يكسري قابليت‌هايي هستند كه امكان سريع سازي را فراهم مي‌سازند.

    • Modules : محيط بسيار قوي و با كيفيت براي برنامه‌نويسي محاسبات و عمليات پيچيده روي سيستم بانك اطلاعاتي.
    -----------------------------------
    الف ‌- تعريف دادهData :
    هرگونه اطلاعات لازم و كاربردي درباره يك موجوديت را يك داده مي‌گويند.

    ب‌- تعريف Fild :
    به هر ستون يك جدول كه در بر گيرنده كليه اطلاعات مربوط به آن ستون مي‌باشد و بخشي از يك موجوديت را تشگيل ميدهد فيلد گفته مي‌شود.

    ت‌- تعريف Record :
    به هر سطر يك جدول كه اطلاعات مربوط به يك موجوديت را نشان مي‌دهد ، ركورد گويند.

    ث‌- تعريف پايگاه داده‌اي ارتباطي:
    پايگاه داده‌هاي ارتباطي، مجموعه‌اي از جدول‌هاي داده است كه يك فيلد مشترك در هر يك از جدولهاي موجود دارد و از طريق آن مي‌توان داده‌ها را بهم ربط داد.به اين مدل از پايگاه داده‌ها ، پايگاه داده‌هاي ارتباطي RelationShip مي‌گويند

  2. #2
    ناظر انجمن مباحث عمومی نرم‌افزار Mohammad King's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    Markazi-Arak
    پست ها
    6,470

    پيش فرض

    تابع تبديل عدد به حروف
    مقدمه :
    در اين يادداشت تابع مربوط به تبديل عدد به معادل حروفي آن ارائه مي كنم . عمدتا در سيستم هاي مالي و حسابداري نياز است معادل حروفي اعداد هم نمايش داده شده يا چاپ شوند كه توابع زير اين نياز را پاسخ مي دهد. مثلا براي چاپ يك چك روي خود برگه چك ، علاوه بر نياز به چاپ مبلغ عددي چك لازمست تا مبلغ حروفي چك هم روي برگه چاپ شود.

    نحوه استفاده از تابع :
    تابع Adad كه در زير ارائه شده است يك عدد را بعنوان ورودي گرفته و معادل حروفي آن عدد در زبان فارسي را بعنوان خروجي توليد مي كند. مثلا (Adad(1373 مقدار"يكهزار و سيصد و هفتاد و سه" را بعنوان خروجي توليد مي كند.براي استفاده از اين توابع بايد از چند خط پايين تر (Start of Module) تا انتهاي اين يادداشت را در حافظه كپي (Copy) كرده و در يك ماجول جديد در اكسس يا VB ، Paste كنيد . ( توجه داشته باشيد كه نمايش كدهاي نوشته شده در اينجا راست به چپ است كه پس از كپي كردن آن در ماجول اكسس بشكل صحيح نمايش داده خواهد شد)



    ' *********** Start of Module ***********

    'توابع تبديل عدد به معادل حروفي آن در زبان فارسي
    'برنامه نويس : حميد آزادي اردكاني
    'ويرايش اول : ارديبهشت 1380
    ' پست الكترونيك : [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    ' آدرس وب : [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    Function Adad(ByVal Number As Double) As String
    If Number = 0 Then
    Adad = "صفر"
    End If
    Dim Flag As Boolean
    Dim S As String
    Dim I, L As Byte
    Dim K(1 To 5) As Double

    S = Trim(Str(Number))
    L = Len(S)
    If L > 15 Then
    Adad = "بسيار بزرگ"
    Exit Function
    End If
    For I = 1 To 15 - L
    S = "0" & S
    Next I
    For I = 1 To Int((L / 3) + 0.99)
    K(5 - I + 1) = Val(Mid(S, 3 * (5 - I) + 1, 3))
    Next I
    Flag = False
    S = ""
    For I = 1 To 5
    If K(I) <> 0 Then
    Select Case I
    Case 1
    S = S & Three(K(I)) & " تريليون"
    Flag = True
    Case 2
    S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " ميليارد"
    Flag = True
    Case 3
    S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " ميليون"
    Flag = True
    Case 4
    S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " هزار"
    Flag = True
    Case 5
    S = S & IIf(Flag = True, " و ", "") & Three(K(I))
    End Select
    End If
    Next I
    Adad = S
    End Function


    Function Three(ByVal Number As Integer) As String
    Dim S As String
    Dim I, L As Long
    Dim h(1 To 3) As Byte
    Dim Flag As Boolean
    L = Len(Trim(Str(Number)))
    If Number = 0 Then
    Three = ""
    Exit Function
    End If
    If Number = 100 Then
    Three = "يكصد"
    Exit Function
    End If

    If L = 2 Then h(1) = 0
    If L = 1 Then
    h(1) = 0
    h(2) = 0
    End If

    For I = 1 To L
    h(3 - I + 1) = Mid(Trim(Str(Number)), L - I + 1, 1)
    Next I

    Select Case h(1)
    Case 1
    S = "يكصد"
    Case 2
    S = "دويست"
    Case 3
    S = "سيصد"
    Case 4
    S = "چهارصد"
    Case 5
    S = "پانصد"
    Case 6
    S = "ششصد"
    Case 7
    S = "هفتصد"
    Case 8
    S = "هشتصد"
    Case 9
    S = "نهصد"
    End Select

    Select Case h(2)
    Case 1
    Select Case h(3)
    Case 0
    S = S & " و " & "ده"
    Case 1
    S = S & " و " & "يازده"
    Case 2
    S = S & " و " & "دوازده"
    Case 3
    S = S & " و " & "سيزده"
    Case 4
    S = S & " و " & "چهارده"
    Case 5
    S = S & " و " & "پانزده"
    Case 6
    S = S & " و " & "شانزده"
    Case 7
    S = S & " و " & "هفده"
    Case 8
    S = S & " و " & "هجده"
    Case 9
    S = S & " و " & "نوزده"
    End Select

    Case 2
    S = S & " و " & "بيست"
    Case 3
    S = S & " و " & "سي"
    Case 4
    S = S & " و " & "چهل"
    Case 5
    S = S & " و " & "پنجاه"
    Case 6
    S = S & " و " & "شصت"
    Case 7
    S = S & " و " & "هفتاد"
    Case 8
    S = S & " و " & "هشتاد"
    Case 9
    S = S & " و " & "نود"
    End Select

    If h(2) <> 1 Then
    Select Case h(3)
    Case 1
    S = S & " و " & "يك"
    Case 2
    S = S & " و " & "دو"
    Case 3
    S = S & " و " & "سه"
    Case 4
    S = S & " و " & "چهار"
    Case 5
    S = S & " و " & "پنج"
    Case 6
    S = S & " و " & "شش"
    Case 7
    S = S & " و " & "هفت"
    Case 8
    S = S & " و " & "هشت"
    Case 9
    S = S & " و " & "نه"
    End Select
    End If
    S = IIf(L < 3, Right(S, Len(S) - 3), S)
    Three = S
    End Function

  3. #3
    ناظر انجمن مباحث عمومی نرم‌افزار Mohammad King's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    Markazi-Arak
    پست ها
    6,470

    پيش فرض

    در اين يادداشت روش غيرفعال كردن دكمه Shift به هنگام باز شدن فايلهاي اكسس را توضيح خواهم داد . در ابتدا بايد مقدمه اي را عنوان كنم.

    مقدمه
    مطلب زير در زمينه افزايش امنيت سيستم ها است. نكته اي كه در زمينه امنيت هر نوع سيستمي بايد به آن توجه داشت اينست كه بطور كلي امنيت يك امر نسبي است .
    بعبارت ديگر يك راه حل امنيتي ، قطعا جلوي بسياري از حملات عليه سيستم را خواهد گرفت ولي هيچگاه بطور كامل حملات را خنثي نخواهد كرد و هميشه حفره هاي امنيتي وجود خواهند داشت .
    در يادداشت قبل گفتيم كه به هنگام باز شدن فايلهاي اكسس، Startup اجراء مي شود . به كمك گزينه هاي Startup مي توانيم از دسترسي كاربران به محيط طراحي برنامه جلوگيري كنيم . ولي همانطور كه قبلا گفته شد ميكرو سافت با انگيزه ايجاد سيستم امنيتي چند مرحله اي يك روش ضد امنيتي براي آن ايجاد كرده است و كاربران برنامه ما مي توانند با پايين نگه داشتن دكمه Shift از اجراء Startup جلوگيري كنند و وارد محيط طراحي شوند . حال اگر بخواهيم دكمه شيفت را غير فعال كنيم تا كسي نتواند وارد محيط طراحي شود بايد به اين طريق عمل كرد :

    استفاده از خاصيت AllowByPassKey
    خاصيت AllowByPassKey يكي از خواص شيء Database است كه:
    اگر مقدار آن True باشد دكمه شيفت فعال است .
    و اگر مقدار آن False باشد دكمه شيفت غير فعال است .

    اين خاصيت عملا در ليست خواص يك Database نيست و بايد آنرا فقط براي اولين بار ايجاد (Create) كرد . بعد از ايجاد آن مي توان مقدار آنرا False يا True كرد .

    تذكر : حتما يك كپي از فايل خودتان قبل از اجراء اين برنامه برداريد چون ممكن است ديگر نتوانيد وارد محيط برنامه خودتان شويد . من هم با عرض معذرت وقت پاسخگويي به ايميل هاي دوستان را ندارم و دچار مشكل خواهيد شد.

    سه دكمه روي يك فرم مطابق شكل بالا ايجاد كنيد و كدهاي زير را در آن بنويسد.
    (نمايش كدهاي نوشته شده مناسب نيست ولي اگر آنرا در حافظه كپي كنيد و در ماجول فرمتان كپي كند بدرستي تمايش داده مي شود .)



    'براي اولين دفعه :
    Private Sub Create_Click()
    On Error GoTo Er

    Dim db As Database
    Dim prp As Property
    Set db = CurrentDb
    Set prp = db.CreateProperty("allowbypasskey", dbBoolean, False)
    db.Properties.Append prp
    db.Close

    Ex:
    Exit Sub
    Er:
    If Err.Number = 3367 Then
    MsgBox "اين خاصيت ايجاد شده و لازم نيست مجددا ايجاد شود"
    End If
    Resume Ex

    End Sub

    'جهت غير فعال كردن شيفت
    Private Sub ShiftNo_Click()
    Dim db As Database
    Set db = CurrentDb
    db.Properties("allowbypasskey") = False
    db.Close
    End Sub

    'جهت فعال كردن شيفت
    Private Sub ShiftOk_Click()
    Dim db As Database
    Set db = CurrentDb
    db.Properties("allowbypasskey") = True
    db.Close
    End Sub

  4. #4
    ناظر انجمن مباحث عمومی نرم‌افزار Mohammad King's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    Markazi-Arak
    پست ها
    6,470

    پيش فرض

    صدور پيغامهاي فارسي بجاي پيغامهاي Error اكسس
    يكي از دوستان وبلاگي من پرسيده بود چطوري پيغام Error مربوط به ورود ركورد تكراري را در اكسس فارسي كنيم . ترجيح دادم جواب كاملي براي سئوال ايشون بدم تا همه استفاده كنن. بنابراين ابتدا جواب ايشون رو ميدم و بعد از اون بطور كاملتر براي همه وبلاگي هاي عزيز روش كنترل خطا را تشريح مي كنم .

    (توجه داشته باشيد كه در زير كدهاي نوشته شده از راست به چپ نمايش داده مي شوند)

    جواب دوست ما:
    در رويداد OnError مربوط به فرم ورود اطلاعات اين كد را مي نويسيم:


    If DataErr = 3022 Then
    MsgBox "اطلاعات وارده تكراري است"
    Response = acDataErrContinue
    End If


    جواب كلي :
    اساسا ، هر خطا در اكسس يا VB يك كد توليد مي كند . برنامه نويسان بايد يك بانك اطلاعات از كد خطاهايي كه رخ مي دهد داشته باشند تا بتوانند با چك كردن شماره خطا پيغام فارسي مناسب آن خطا را صادر كنند .

    بطور كلي دو روش كنترل خطا از اين قرارند:

    1- اگر خطا مربوط به كل فرم باشد بايد از طريق رويداد OnError فرم كنترل شود .
    معمولا خطاهايي كه مربوط به كدنويسي ما نبوده و صرفا توسط اكسس و در واكنش به اشتباهات كاربر صادر مي شود در اين رويداد كنترل مي شود . در اين رويداد ، پارامتر DataErr حاوي كد خطاست. (بعبارت واضح تر اگر مي خواهيد كد مربوط به هر Error را شناسايي كنيد مي توانيد اين دستور در رويداد OnError فرم بنويسيد: MsgBox DataErr )

    بطور كلي بعد از اينكه كد خطاها را شناسايي كرديد با نوشتن قالب برنامه زير در رويداد OnError فرم مي توانيد خطاها را كنترل كنيد :


    Dim Str as String

    Select Case DataErr
    Case 3022
    Str="اطلاعات وارده تكراري است"
    Case 2237


    Str = "اطلاعات وارده در ليست وجود ندارد"
    'خط فوق براي مواردي است كه يك مقداري كه در كمبو باكس وجود ندارد ، تايپ شده باشد


    Case ...
    Str=...
    ....
    End Select

    Msgbox Str
    Response = acDataErrContinue



    2- اگر خطا مربوط به كدهايي باشد كه خودمان در يك Sub نوشته ايم :
    در اين روش بايد در ابتداي Sub با دستور : <اسم زير روال كنترل خطا> On Error Goto ، كنترل خطا را به يك روال كنترل خطا ارجاع دهيم.
    ( تمام كدهايي كه ويزارد Command Button بطور خودكار در رويداد OnClick دكمه ها ايجاد مي كند نمونه خوبي براي اين روش هستند. ضمنا در اين روش بكمك Err.Number كد خطا شناسايي مي شود )

  5. #5
    ناظر انجمن مباحث عمومی نرم‌افزار Mohammad King's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    Markazi-Arak
    پست ها
    6,470

    پيش فرض

    می خواهم یک فرم جستجو در خود اکسس طراحی کنم اما نمی دانم چرا بعد از قرار دادن یک باتون با ویزارد آن به جواب نمی رسم مثلا در Command Button Wizard گزینه Record Navigation را انتخاب و از لیست سمت چپ هم Find Record را انتخاب می کنم اما به نتیجه دلخواه نمی رسم.
    آیا باید برنامه نویسی داشته باشد (چرا که در ویزارد مقداری برای جستجو نمی گیرد)
    البته سایر گزینه ها هم جواب نمی دهد مثل open کردن یک فرم دیگر...

    کلا با فرم کار نکردم ممنون می شم اگه یه مثال بزنید

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •