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

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

  1. #1

    چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    سلام بر دوستان و اساتید
    در یک فایل اکسس چند فیلد داریم مثلا نام و نام خانوادگی
    میخواهیم در این فیلد ها فقط کاراکتر فارسی نوشته شود---نه انگلیسی و نه عدد---
    این خواسته میتواند در تنظیمات خود فیلد باشد یا بصورت کد vb نوشته و در خاصیت keypress یا keydown قرار داده شود
    با سپاس از شما


  2. #2
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    اردبیل
    پست
    100

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    می تونی در تنظیمات مربوط به اون تکست باکس خاصیت keyboard language را برابر فارسی قرار بدهید.

  3. #3

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    نقل قول نوشته شده توسط reza_1199 مشاهده تاپیک
    می تونی در تنظیمات مربوط به اون تکست باکس خاصیت keyboard language را برابر فارسی قرار بدهید.
    بسیار سپاس از شما .....هدف اینه که به هیچ عنوان انگلیسی یا عدد نتونه وارد کنه
    با alt+shift براحتی میشه صفحه کلید رو تغییر داد , و انگلیسی تایپ کرد که مد نظر ما نیست

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    1,774

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    حالتهای مختلفی رو میشه تصور کرد:

    یکی اینکه از رخدادهای keydown/keypress فیلد استفاده کنین. این روش رو مطمئنم قبلا اینجا گفته شده و با جستجو میتونین پیداش کنین.
    البته روش بدی هست! هم در ذات و هم در عملکرد.
    ایرادهای ذاتیش به کنار، از نظر عملکرد هم هنوزکاربر میتونه با copy-paste یا drag-and-drop هر متن دلخواهی رو وارد فیلد کنه.

    راه دیگه این هست که بگذارید کاربر هر چی دلش خواست وارد کنه ولی در رخداد before update فیلد خفتش کنین و جلوی کارش رو بگیرین.

    یک راه دیگه مشابه حالت بالایی هست ولی از رخداد after update استفاده و تمام کارآکترهای ناخواسته رو خودمون حذف میکنیم و (احتمالا) مزاحم کاربر هم نمیشیم.

    برای این دو روش آخر، بهتر هست از regular expression استفاده بشه به اینصورت که یک white list از کارآکترهای مجاز (اینجا فقط فارسی) میسازیم و اگر غیر از اینها در فیلد دیده شد، بسته به انتخاب روش، یا جلوی آپدیت رو میگیریم و یا اونها رو حذف و بعد آپدیت میکنیم.

    حالا اگر مشکلی در پیاده سازی هست بگین تا راهنمایی کنم.

  5. #5

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    با سپاس از دقت نظر جنابعالی ...اگر امکانش باشه یک فایل اکسس نمونه اینجا ارسال بفرمایید که بی نهایت سپاسگزار میشم
    اما جهت اطلاع میخواستم یک موردی رو بدونم
    ما یه کدی شبیه کد زیر:
    On Error Resume Next
    If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0
    که فقط اجازه میده عدد وارد فیلد بشه
    حال میخواستم بدونم بجز راه معقولی که شما پیشنهاد دادین آیا میشه با محدود کردن کد ascii اجازه فارسی نویسی به کاربر ندهیم یا خیر ...
    بسیار سپاس

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    1,774

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    آیا میشه با محدود کردن کد ascii اجازه فارسی نویسی به کاربر ندهیم یا خیر ...
    اگر همین برای شما کفایت میکنه پاسخ مثبت هست، ولی کارآکترهای فارسی پراکنده هستن و باید چند رنج و چند کد تکی رو بررسی کنین.
    در ضمن ممکنه برای حروفی مثل (ؤ أ ء ة إ ۀ ....) یا حرکت و تنوین و تشدید ( بَ بُ بِ بٍ ...) و کشیده (کـــــشـــیــــــده) هم برنامه جدا داشته باشین.

    کارآکترهای فارسی و عربی در رنج حدودی 1500 تا 1800 قرار دارن.
    میتونین با برنامه character map کد هر کاراکتر رو بررسی کنین.
    ولی بهتره با کد زیر یک جدول بسازین و اونجا اینکار رو انجام بدین:

  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    1,774

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    docmd.runsql ("create table chars ([code] integer , [char] text(2))")
    dim i as integer
    with currentdb.openrecordset("chars")
    for i=1500 to 1800
    .addnew
    !code=i
    !char=chrw(i)
    .update
    next
    .close
    end with

  8. #8
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    1,774

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    وقتی که کدهای مورد نظرتون رو از جدول پیدا کردین اونها رو در تابع keypress استفاده کنین،
    چیزی شبیه به کد زیر:

    select case keyascii
    case 1570 to 1594 , 1601 to 1609
    case 1662 , 1670 , 1688 , 1705 , 1711 , 1740
    case 32 , 8
    case else
    keyascii=0
    end select


  9. #9

    نقل قول: چگونه در یک فیلد اکسس فقط فارسی بنویسم ؟

    بسیار سپاس از همراهی شما

تاپیک های مشابه

  1. چگونه با php اعداد رو فارسی بنویسم ؟
    نوشته شده توسط aliphp1 در بخش PHP
    پاسخ: 5
    آخرین پست: سه شنبه 05 اردیبهشت 1391, 23:02 عصر
  2. پاسخ: 0
    آخرین پست: جمعه 15 مهر 1390, 19:49 عصر
  3. چطوری فارسی بنویسم؟
    نوشته شده توسط Mr FTHEL در بخش برنامه نویسی در 6 VB
    پاسخ: 9
    آخرین پست: دوشنبه 23 اسفند 1389, 19:02 عصر
  4. چگونه فارسی بنویسم
    نوشته شده توسط pouyaa در بخش برنامه نویسی در Delphi
    پاسخ: 8
    آخرین پست: یک شنبه 21 خرداد 1385, 04:55 صبح
  5. چگونه فارسی بنویسم
    نوشته شده توسط رضایت در بخش توسعه‌ی لینوکس و نرم افزارهای آزاد
    پاسخ: 3
    آخرین پست: سه شنبه 28 مهر 1383, 06:49 صبح

برچسب های این تاپیک

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

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