ثبت اطلاعات از طریق فرم در بانک اطلاعات

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • jeddi

    • 2011/04/21
    • 50

    ثبت اطلاعات از طریق فرم در بانک اطلاعات

    با عرض سلام و عرض ادب به دوستان و اساتید محترم
    از دوستان گرامی می خوام در رابطه با کد زیر توضیحاتی بهم بدهند و ضمناً اگه مقدور هست کد ذیل طوری اصلاح بشه که در زمان ثبت در صورت تکراری بودن کد ملی خطا بده ( فایل مربوطه به پیوست می باشد )
    خاطرم نیست که فایل و از این سایت دانلود کردم یا از جای دیگر در هر صوت از دوست عزیز که روی این فایل کرده بود کمال تشکر را دارم فایل بسیار عالی بود
    Private Sub CommandButton1_Click()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim rs1 As New ADODB.Recordset
    Dim Fname As String, Lname, Address As String
    Dim prov As String, str As String
    Dim fpath As String
    Fname = TextBox1.Value
    Lname = TextBox2.Value
    Address = TextBox3.Value
    fpath = ThisWorkbook.Path & Application.PathSeparator & "bank.xls"
    str = "provider=microsoft.ace.oledb.12.0;data source=""" & fpath & """;extended properties=""excel 12.0"";"
    cn.Open str
    With rs
    .Open "Select * from [data$]", cn, adOpenKeyset, adLockOptimistic
    .AddNew
    !Fname = Fname
    !Lname = Lname
    !Address = Address
    .MoveFirst
    .Close
    End With
    MsgBox "اطلاعات ثبت شد", vbOKOnly + vbDefaultButton1, "ثبت اطلاعات"
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox1.SetFocus
    End Sub
    فایل های پیوست شده
  • jeddi

    • 2011/04/21
    • 50

    #2
    با عرض سلام عرض ادب
    دوستان ما همچنان چشم به راه هستیم
    یه سئوال دیگه اینکه آیا می توان فایل اکسلی که هنوز باز نکردیم (a ) از طریق یه فایل اکسل دیگر (b) بتوان به اطلاعات فایل اکسل (a) دسترسی پیدا کرد
    مثلاً در یکی از سل های فایل اکسل (b) بنویسیم که عدد سل c1 و با سل c2 فایل اکسل (a) را با هم جمع بزند( بدون اینکه فایل a باز باشد) آیا مقدور می باشد یا نه ؟
    با تشکر از همه دوستان

    کامنت

    • generalsamad
      مدير تالار توابع

      • 2014/06/22
      • 1496

      #3
      بله امکانش هست
      اگه هر دو فایل توی یک مسیر ذخیره باشند این فرمول رو توی فایل b قرار دهید
      بفرض پسوند فایل a هم xlsx باشد
      کد PHP:
      =C1+[a.xlsx]Sheet1!C2 
      [CENTER]
      [SIGPIC][/SIGPIC]
      [/CENTER]

      کامنت

      • Javid Mokhtari
        مدير تالار ويژوال بيسيك

        • 2012/01/16
        • 1212
        • 73.00

        #4
        نوشته اصلی توسط jeddi
        با عرض سلام و عرض ادب به دوستان و اساتید محترم
        از دوستان گرامی می خوام در رابطه با کد زیر توضیحاتی بهم بدهند و ضمناً اگه مقدور هست کد ذیل طوری اصلاح بشه که در زمان ثبت در صورت تکراری بودن کد ملی خطا بده ( فایل مربوطه به پیوست می باشد )
        خاطرم نیست که فایل و از این سایت دانلود کردم یا از جای دیگر در هر صوت از دوست عزیز که روی این فایل کرده بود کمال تشکر را دارم فایل بسیار عالی بود
        Private Sub CommandButton1_Click()
        Dim cn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim rs1 As New ADODB.Recordset
        Dim Fname As String, Lname, Address As String
        Dim prov As String, str As String
        Dim fpath As String
        Fname = TextBox1.Value
        Lname = TextBox2.Value
        Address = TextBox3.Value
        fpath = ThisWorkbook.Path & Application.PathSeparator & "bank.xls"
        str = "provider=microsoft.ace.oledb.12.0;data source=""" & fpath & """;extended properties=""excel 12.0"";"
        cn.Open str
        With rs
        .Open "Select * from [data$]", cn, adOpenKeyset, adLockOptimistic
        .AddNew
        !Fname = Fname
        !Lname = Lname
        !Address = Address
        .MoveFirst
        .Close
        End With
        MsgBox "اطلاعات ثبت شد", vbOKOnly + vbDefaultButton1, "ثبت اطلاعات"
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox1.SetFocus
        End Sub
        با سلام...

        دوست عزیز توضیح دادن برای تک تک کدها به وقت بیشتری نیاز داره اما من کلی و خلاصه وار توضیح میدم.

        ADO که مخفف Activex Data Objects هستش یک گذرگاهی برای اتصال با یک بانک اطلاعاتی هستش و دارای سه شیئ کاربردی هستش:
        Connection: براي اتصال و برقراری ارتباط با یک بانك اطلاعاتي استفاده میشه.
        Recordset: این شیئ هم مقدار رکورد یک داده بانک اطلاعاتی رو مشخص میکند.
        Command:
        که برای استفاده از اشیاء آن از ADODB استفاده میشه.
        یک بانک اطلاعاتی از طریق کد cn.Open filepath باز و بعد از انجام عملیات باید با کد Close بسته شود.

        و اما پروسه ای که در کد بالا انجام میشه:

        یک گذرگاه با متغیری به نام cn و یک رکوردست برای ذخیره سازی داده های موجود با متغییری به نام rs درست میکنه.مقادیر تکست باکس ها رو در متغیرهای معرفی ذخیره میکنه تا بعدا فراخوانی بشه.با استفاده ار دستور Path مسیر فایل دوم به نام bank رو در یک متغیر ذخیره میکنه بعد با استفاده ار دستور cn.Open str بانک اطلاعاتی رو باز میکنه بعد با استفاده از AddNew یک رکورد جدید ایجاد میکنه تا داده های تکست باکس هارو که قبلا در متغیرهاش(Fname Lname Address ) ذخیره کرده بود رو در جای خودشون ثبت کنه بعد ثبت با دستور MoveFirst رکورد رو به اولین رکورد برمیگردونه بعدش هم با دستور Close بانک اطلاعاتی رو میبنده.بعدش مسیج باکس و خالی کردن تکست باکس ها.

        برای یادگیری، بهتر است تک تک متدهای موجود در کدبالا رو دربیارین و بصورت تکی کاردبرد و نحوه عملکردشون رو یاد بگیرید.بخصوص باید روی ADO مطالعه بیشتری انجام بشه
        [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
        بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

        شرکت در دوره:
        [/FONT][/SIZE]
        [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
        [/B][/FONT][/SIZE]
        [/CENTER]
        [/INDENT]
        [/FONT]

        کامنت

        • jeddi

          • 2011/04/21
          • 50

          #5
          دوست عزیز بابت توضیحات بسیار بسیار ممنونم حتماً وقت بیشتری خواهم گذاشت جهت یادگیری

          کامنت

          چند لحظه..