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

نام تاپیک: جستجو بر اساس...

  1. #1

    جستجو بر اساس...

    با سلام
    من در حال نوشتن یک دفتر تلفن هستم .می خواستم امکان جستجو بر اساس هرکدوم از فیلدها رو هم بزارم اما توی جستجو بر اساس تلفن منزل و محل کار مشکل دارم :cry:
    در صورتی که جستجو بر اساس موبایل و فکس کاملا درست کار می کنه :shock: وقتی کدها رو دیدم هیچ مشکلی نبود و حتی من برداشتم و کد جستجو بر اساس فکس رو هم کپی کردم و قسمت مربوط به اینکه کدوم رو بگرده رو تغییر دادم ولی بازم مشکل داره :cry:
    اگه راهنمای کنین ممنون می شم :oops: :wink:

  2. #2
    این کدی که ازش اشکال می گیره :cry:
    s = Text1.Text
    If s = "" Then
    GoTo 10
    End If
    s = "home tel ='" + s + "'"
    Data1.Recordset.FindFirst s
    If Data1.Recordset.NoMatch Then
    e = MsgBox("رکورد مورد نظر پیدا نشد", vbOKOnly + 48, "خطا")
    GoTo 10
    End If
    Label3.Caption = Data1.Recordset.Fields("Name")
    Label4.Caption = Data1.Recordset.Fields("family")
    Label5.Caption = Data1.Recordset.Fields("home tel")
    Label6.Caption = Data1.Recordset.Fields("job tel")
    Label7.Caption = Data1.Recordset.Fields("fax")
    Label8.Caption = Data1.Recordset.Fields("mobile")
    10


    قسمتی هم که می گه اشکال داره اینه:
    Data1.Recordset.FindFirst s

    من همین کد رو(به غیر از قسمت مربوط به فیلد دیتا بیس)برای موبایل و فکس استفاده می کنم اشکال جود نداره ولی برای تلفن محل کار و منزل .... :cry: :cry: :cry: :cry:

  3. #3

    یک نظر در خصوص جستجو یک رشته

    :o با سلام خدمت دوست گرامی

    این روش کار شما برای من روش غیر متعارفی بود. من معمولا با دستورات SQL و یا Find و اگر نشد با Filter این کار رو انجام می دم. مثلا به دستور زیر توجه کنید:
    SELECT * FROM mytable WHERE myfield = '" & Text1.text & "'"
    این روش رو هم تست کنید بد نیست. برای درست دیدن متنی که به انگلیسی نوشتم حالت Encoding رو به Left to Right Document تغییر بدهید.

    با احترام - خدانگهدار. :P

  4. #4
    سلام.برای جستجوی شماره باید از دستور زیر استفاده کنید:

    Data1.Recordset.FindFirst "Number= " & Number

    که در این کد Number اول نام فیلد مربوط به شماره تلفنهاست و Number دوم شماره ایست که باید سرچ شود.توجه کنید که باید فیلد شماره تلفنها از نوع عددی (Integer) باشد.[/quote]

  5. #5

    جستجو از طریق دستورات sql

    سلام
    چگونه میتوان در دستورزیر
    SELECT * FROM mytable WHERE myfield = '" & Text1.text & "'"
    به جای اینکه myfield در قسمت command text مشخص شود توسط خود کاربر و در حال اجرای برنامه از طریق یک textbox مشخص شود البته من دستور فوق را امتحان کردم اما خطا میداد. اگر راهنمایی بفرمایید ممنون میشوم.
    * البته من به جای myfield و mytable ، نام جدول و فیلد خودم را نوشتم.
    با تشکر

  6. #6
    سلام
    دوست عزیز برنامه های زبان vb انقیاد زمان اجرا دارند و هنگام اجرای برنامه نوع متغییرها تعریف می شوند شما در خط اول مقدار s رو از خالی قرار دادی پس نوع s از نوع رشته خواهد بود حال آنکه پایگاه داده شما می خواد فیلدی رو از نوع عددی پیدا کنه بنابراین خطای زمان اجرای شما مربوط به نا همنوع بودن داده ها است.
    پیشنهاد:
    s رو از نوع varient تعریف کن و بجای دادن مقدار ""=s قرار بده s=0 مشکلتون مطمئنا حل خواهد شد.
    موفق باشید.

  7. #7
    انقیاد یعنی چی؟

  8. #8
    کاربر دائمی آواتار bobrus
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hash Table
    پست
    436
    سلام دوستان
    آقای ehsan-ets شما یه مشکل کوچولو داری اونم اینه که نام فیلدی رو که انتخاب کردی اسپیس داره
    یعنی( "home tel ") که در این حالت حتی خود اکسس هم با مشکل مواجه میشه و گاهی اوقات درست کار میکنه و گاهی اوقات اشتباه می کنه بهتر بجای اسپیس از آندرلاین استفاده کنی یعنی تبدیل به "home_tel " بشه همینطور برای "job Tel" اینکار رو انجام بده .
    به قول دوستان استفاده از SQL بهتر از روش شماست به توصیشون گوش کن و هرگز هم در نام فیلد از اسپیس استفاده نکن

  9. #9
    Dim str As Variant
    str="HomeTel='" + HomeTel.Text + "'"
    If Not Data1.Recordset.EOF = True Then
    Data1.Recordset.FindFirst str
    End If
    If Data1.Recordset.NoMatch Then
    e=MsgBox ("رکورد مورد نظر پیدا نشد", vbOKOnly + 48, "خطا")
    Go To 10
    End If
    Label3.Caption = Data1.Recordset.Fields("Name")
    Label4.Caption = Data1.Recordset.Fields("Family")
    Label5.Caption = Data1.Recordset.Fields("HomeTel")
    Label6.Caption = Data1.Recordset.Fields("JobTel")
    Label7.Caption = Data1.Recordset.Fields("Fax")
    Label8.Caption = Data1.Recordset.Fields("Mobile")
    10
    .

    به جای s جایی که قرار کلمه یا چیز مورد نظر جستجو بشه رو بزار که من HomeTel.Text رو گذاشتم

  10. #10
    نقل قول نوشته شده توسط Runtime_Error_999 مشاهده تاپیک
    انقیاد یعنی چی؟
    انقیاد یعنی تعریف نوع متغییر.

  11. #11
    [quote=ali_habibi1384;442969]سلام
    دوست عزیز برنامه های زبان vb انقیاد زمان اجرا دارند و هنگام اجرای برنامه نوع متغییرها تعریف می شوند شما در خط اول مقدار s رو از خالی قرار دادی پس نوع s از نوع رشته خواهد بود حال آنکه پایگاه داده شما می خواد فیلدی رو از نوع عددی پیدا کنه بنابراین خطای زمان اجرای شما مربوط به نا همنوع بودن داده ها است.
    پیشنهاد:
    s رو از نوع varient تعریف کن و بجای دادن مقدار ""=s قرار بده s=0 مشکلتون مطمئنا حل خواهد شد.
    موفق باشید.

  12. #12

    نقل قول: جستجو بر اساس...

    سلام خسته نباشید
    من دارم یک برنامه کتابخانه مینویسم.
    یه بخش تعریف کاربر گذاشتم که میخوام کاربر نام کاربری و پسوردشو تو دوتا تکس باکس بنویسه بعد اگه نام کاربری و رمز عبورش صحیح بود وارد سیستم بشه.
    نمیدونم چجوری بنویسم که اول بیاد نام کاربری رو پیدا کنه بعد رکورد بعدی شو با تکس دوم مقایسه کنه اگه رمز درست بود وارد بشه هرچی با دستور Recordset.FindFirst کار کردم نتونستم
    ممنون میشم کمک کنید.

  13. #13

    نقل قول: جستجو بر اساس...

    نقل قول نوشته شده توسط error2009 مشاهده تاپیک
    سلام خسته نباشید
    من دارم یک برنامه کتابخانه مینویسم.
    یه بخش تعریف کاربر گذاشتم که میخوام کاربر نام کاربری و پسوردشو تو دوتا تکس باکس بنویسه بعد اگه نام کاربری و رمز عبورش صحیح بود وارد سیستم بشه.
    نمیدونم چجوری بنویسم که اول بیاد نام کاربری رو پیدا کنه بعد رکورد بعدی شو با تکس دوم مقایسه کنه اگه رمز درست بود وارد بشه هرچی با دستور Recordset.FindFirst کار کردم نتونستم
    ممنون میشم کمک کنید.
    سلام عليکم
    خوب جاي نامناسبي تاپيک ايجاد کرديد ديگه.
    بريد تو لينک زير و بعد گزيه ي ايجاد تاپيک جديد رو بزنيد.
    https://barnamenevis.org/forumdisplay...%AF%D8%B1-6-VB
    و سوالتون رو مطرح کنيد البته با عنوان مناسب.
    (من موندم که چرا شما رفتيد تويک تاپيکي که در سال 82 ايجاد شده و سوالتون هم با اين تاپيک مرتبط نبوده پست زديد)

    موفق باشيد

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

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