نمایش نتایج 1 تا 13 از 13

نام تاپیک: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

  1. #1

    چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    با سلام خدمت همگی دوستان
    یه سوال از خدمت دوستان داشتم که اگه جواب بدن خیلی ممنون میشم

    یه فرم داریم که توش چند تا تکست باکس هست و این تکست باکس ها هم به یک دیتابیس Access وصل هستن. میخوام طوری برنامه طوری باشه که وقتی یکی از تکست باکس ها رو پر میکنیم بقیشون هم بر اساس سایر مقادیر رکورد مربوط به مقدار وارد شده وارد شده پر بشن. یه نمونه هم توی سایت پیدا کردم اما همین کار رو فقط تو محیط خود Database انجام داده بودن
    https://barnamenevis.org/showthread.php?t=30639&highlight=%D8%B4%D8%AF%D9%8  6+%D8%A7%D8%AA%D9%88%D9%85%D8%A7%D8%AA%DB%8C%DA%A9

    ولی توی محیط VB نمیدونم چه طور این کار رو انجام بدم؟ اگه Sample هم کسی داره بذاره یک دنیا ممنون میشم

  2. #2
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    اگه بانکتون زیاد بزرگ نیست می تونید تو رویداد change هر textbox یه بار بانکو فیلتر کنید/
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

  3. #3

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    نقل قول نوشته شده توسط xxxxx_xxxxx مشاهده تاپیک
    اگه بانکتون زیاد بزرگ نیست می تونید تو رویداد change هر textbox یه بار بانکو فیلتر کنید/
    ممنون دوست عزیز
    متاسفانه بانک نسبتا بزرگیه. مربوط به برنامه تاکسی سرویس میشه. میخوام مثلا طرف شماره اشتراک رو که وارد کرد قسمتهای آدرس،شماره تلفن و ... از رکورد مربوط به مشترک خونده بشه و پر بشه. تعداد رکورد ها بسته به تعداد مشترکینی که طرف ثبت میکنه تغییر میکنه. اگه بخوام با فیلتر این کار رو انجام بدم فکر میکنم نیاز باشه که تعداد رکورد ها از اول مشخص باشه

  4. #4
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    میتونی با یه Select رکوردی رو که یکی از مقادیرش وارد شده توی یه ecordset بریزی و بعد به تکست باکسها بدی

  5. #5

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    نقل قول نوشته شده توسط NewFoxStudent مشاهده تاپیک
    میتونی با یه Select رکوردی رو که یکی از مقادیرش وارد شده توی یه ecordset بریزی و بعد به تکست باکسها بدی
    ممنون دوست عزیز
    خب من الان یک رکوردست تعریف کردم. دستور Select رو چه جور بنویسم که بتونه کل فیلدهای یک رکورد رو که مقدار یکی از فیلدهاشو داریم انتخاب کنه و بریزه توی رکوردست؟ اگه راهنماییم کنید ممنون میشم. بقیه دوستان هم اگه نظری دارن دریغ نکنن

  6. #6
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    با فرض این که فیلدی رو که مقدارش رو داری recID هست و نام جدول TableName و مقدار فیلد cValue
    Select * From TableName Where recID = cValue

  7. #7
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

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

  8. #8
    کاربر تازه وارد آواتار Mohya_z332
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    My Document
    پست
    51

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    باید دیتا فیلد تکست های دیکه رو با دیتا ست کنی بعد این کد رو تو تکست مورد نظر بنویس.
    توی key press تکست بنویس
    if keyascii=13 then
    Data2.Recordset.FindFirst "NoeKhodro ='" & (text1.text) & " '"
    Do While Data2.Recordset.NoMatch = False
    Data2.Recordset.FindNext "NoeKhodro ='" & (text1.text) & " '"
    Loop
    end if
    حالا به محضی که enter رو بزنی همه تکست ها رو با تکست اصلی ست میکنه .

  9. #9
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    نقل قول نوشته شده توسط Mohya_z332 مشاهده تاپیک
    باید دیتا فیلد تکست های دیکه رو با دیتا ست کنی بعد این کد رو تو تکست مورد نظر بنویس.
    توی key press تکست بنویس
    if keyascii=13 then
    Data2.Recordset.FindFirst "NoeKhodro ='" & (text1.text) & " '"
    Do While Data2.Recordset.NoMatch = False
    Data2.Recordset.FindNext "NoeKhodro ='" & (text1.text) & " '"
    Loop
    end if
    حالا به محضی که enter رو بزنی همه تکست ها رو با تکست اصلی ست میکنه .

    این کار زمان زیادی میگیره. در صورتی که دستورات sql بهینه تر هستند.

    کد مشترک در اکثر برنامه ها می بایست محدود باشد( مثلا 4 یا 5 کاراکتر)
    خب حالا تو رویداد change همون textbox کد باید چک کنی اگر Len تکست 4 شد اونوقت بانک فیلتر بشه با مقدار وارد شده. (با دستور select). کاربر هم دو سه بار که با برنامه کار کنه می فهمه که وقتی کد رو به طور کامل وارد کرد باید چند میلی ثانیه صبر کنه تا نتایج رو ببینه. اگر شما ده هزار رکورد هم داشته باشید که بعید می دونم باز هم حداکثر 3 تا چهار ثانیه طول می کشه تا بانک فیلترشه.

    من خودم تو برنامه هام همین کارو می کنم. کاره خوبیه دیگه نیازی نیست کاربر کار اضافی انجام بده.

    موفق باشید/
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

  10. #10

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    نقل قول نوشته شده توسط Mohya_z332 مشاهده تاپیک
    باید دیتا فیلد تکست های دیکه رو با دیتا ست کنی بعد این کد رو تو تکست مورد نظر بنویس.
    توی key press تکست بنویس
    if keyascii=13 then
    Data2.Recordset.FindFirst "NoeKhodro ='" & (text1.text) & " '"
    Do While Data2.Recordset.NoMatch = False
    Data2.Recordset.FindNext "NoeKhodro ='" & (text1.text) & " '"
    Loop
    end if
    حالا به محضی که enter رو بزنی همه تکست ها رو با تکست اصلی ست میکنه .
    ممنون دوست عزیز
    علاوه بر توضیحاتی که جناب xxxx_xxxx دادن ذکر این کنته هم خالی از لطف نیست :
    متدهای FindFirst و FindNext مربوط به کنترل Data هستن و این کنترل هم تا اونجا که من میدونم برای اتصال به بانک Acceess بالاتر از Access 97 رو پشتیبانی نمیکنه. اگه بخواین دیتابیسی رو که با نسخه ای بالاتر از Access 97 درست شده بهش وصل کنین با پیغامی مبنی بر عدم شناسایی فرمت دیتابیس روبرو میشین. البته این مشکل هم راه حل داره که راه حل اون نصب یک سرویس پک از مایکروسافته که در اون صورت هم برای انتقال برنامه مشکلات زیادی به وجود میاد. در هر صورت ممنون از زحمتی که کشیدین

  11. #11

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    نقل قول نوشته شده توسط xxxxx_xxxxx مشاهده تاپیک
    این کار زمان زیادی میگیره. در صورتی که دستورات sql بهینه تر هستند.

    کد مشترک در اکثر برنامه ها می بایست محدود باشد( مثلا 4 یا 5 کاراکتر)
    خب حالا تو رویداد change همون textbox کد باید چک کنی اگر Len تکست 4 شد اونوقت بانک فیلتر بشه با مقدار وارد شده. (با دستور select). کاربر هم دو سه بار که با برنامه کار کنه می فهمه که وقتی کد رو به طور کامل وارد کرد باید چند میلی ثانیه صبر کنه تا نتایج رو ببینه. اگر شما ده هزار رکورد هم داشته باشید که بعید می دونم باز هم حداکثر 3 تا چهار ثانیه طول می کشه تا بانک فیلترشه.

    من خودم تو برنامه هام همین کارو می کنم. کاره خوبیه دیگه نیازی نیست کاربر کار اضافی انجام بده.

    موفق باشید/
    من برای رویداد Keypress تکست باکس وقتی که دکمه Enter زده بشه دستور Filter رو به این صورت نوشتم اما برنامه خطا میده. اگه بفرمایید مشکلش کجاست ممنون میشم

    Adodc1.Recordset.Filter = "SELECT * FROM Sample WHERE Sample_ID = IDString"
    IDString هم یک متغیر رشته ای هستش که مقدار موجود در تکست باکس توی اون ذخیره میشه

  12. #12
    VIP آواتار xxxxx_xxxxx
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    X place
    سن
    34
    پست
    4,768

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟


    Adocdc.Recordsource="Select * from Sample Where Sample=' " & IDString & " ' "
    الگوریتم هایی که تاریخچه خود را فراموش می کنند، محکوم به تکرار آن هستند.

  13. #13

    نقل قول: چه طور تکست باکس های برنامه رو به طور خودکار پر کنیم؟

    نوشتمش. دقیقا همون چیزی شد که میخواستم. خیلی خیلی ساده تر از اونی که فکرشو میکردم . بدون استفاده از دستورات SQL و حتی فیلتر کردن بانک. به این صورت که با یک حلقه While مقدار وارد شده با مقدار متناظر فیلدش تو اولین رکورد مقایسه میشه اگه برابر بود مقادیر بقیه فیلد ها از همون رکورد کپی میشن توی تکست باکس های مربوطه و بقیه رکوردها بررسی نمیشن در غیر اینصورت با متد Movenext به رکورد بعدی میریم و بار این مقایسه انجام میشه تا به آخر رکوردست برسیم. سمپلش رو هم گذاشتم تا اگه کسی خواست استفاده کنه. یه باگ کوچیک هم داشت که وقتی رکوردست یک بار تا آخر پیمایش میشد و مقدار جدیدی وارد میکردیم تکست باکس ها با مقدار درستی پر نمیشدن که اون رو هم رفع کردم. از راهنمایی های عزیزان xxxx_xxxx ، Mohya_z332 و NewFoxStudent هم خیلی خیلی ممنون
    فایل های ضمیمه فایل های ضمیمه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •