ابو عارف قام بنشر سبتمبر 16, 2015 قام بنشر سبتمبر 16, 2015 السلام عليكم و رحمة الله و بركاته اخواننا لكرام: هل يوجد كود للمعرفة لغة حالية للأكسس مثلا للمعرفة اصدار الأكسس نستخدم كود: MsgBox Version او MsgBox Application.Version اريد كود متشابه ولكن عرض اللغة بدلا من اصدار، او كود اغلاق و اعادة فتح القاعدة
رمهان قام بنشر سبتمبر 16, 2015 قام بنشر سبتمبر 16, 2015 اولا : انا معجب بردودك دائما ثانيا : هل تقصد لغة المفاتيح ام لغة الاوفيس ( الاكسس ) تحياتي
ابو عارف قام بنشر سبتمبر 16, 2015 الكاتب قام بنشر سبتمبر 16, 2015 يا اهلاً و مرحبا يا ابا غازي نورت الموضوع اقصد لغة الاوفيس (الأكسس) لان اختصارات ضغط و اصلاح قاعدة مفتوحة مختلف في لغة العربية من اللغة الانجليزي باستخدام أمر Sendkyes
رمهان قام بنشر أكتوبر 11, 2015 قام بنشر أكتوبر 11, 2015 (معدل) يا اهلاً و مرحبا يا ابا غازي نورت الموضوع اقصد لغة الاوفيس (الأكسس) لان اختصارات ضغط و اصلاح قاعدة مفتوحة مختلف في لغة العربية من اللغة الانجليزي باستخدام أمر Sendkyes اولا اعتذر عن التاخير لسا اتذكر الموضوع وانا امر على كتاباتي ! وجدت لك عزيزي طريقتين : 1. اعمل مرجع للمكتبة microsoft office object library وحسب الاصدار لديك ثم هذا الكود Application.LanguageSettings.LanguageID(msoLanguageIDUI) وهذه مرجع للغات : https://msdn.microsoft.com/en-us/goglobal/bb964664 2. عمل وحدة نمطية عامة بها : Private Const LOCALE_USER_DEFAULT = &H400 Private Const LOCALE_SNATIVELANGNAME = &H4 Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _ (ByVal Locale As Long, _ ByVal LCType As Long, _ ByVal lpLCData As String, _ ByVal cchData As Long) As Long Private Function GetInfo(ByVal lInfo As Long) As String Dim Buffer As String, Ret As String Buffer = String$(256, 0) Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer)) If Ret > 0 Then GetInfo = Left$(Buffer, Ret - 1) Else GetInfo = vbNullString End If End Function وعند اي حدث في البرنامج تعمل المناداة وكرسالة مثلا : MsgBox GetInfo(LOCALE_SNATIVELANGNAME) تحياتي اخي استاذ ابوعارف تم تعديل أكتوبر 11, 2015 بواسطه رمهان 2
ابو عارف قام بنشر أكتوبر 12, 2015 الكاتب قام بنشر أكتوبر 12, 2015 السلام عليكم و رحمة الله و بركاته استاذ ابا جود/ اولاً اشكرك على اهتمام الموضوع ثانياً: ايجاد الحل للموضوع يدل على انه لا مستحيل امام اباجود باذن الله ولكن رغم كثرة مشاكل كـ اختلاف اللغة ،اختلاف اصدار 2003،اختلاف اصدار 2010 سبب ان استغني عن المشروع و اقوم بانشاء قاعدة مرتبطة حتى اتمكن ضغط و اصلاحها من قاعدة الحالية ،لايزال انا في حاجة ماسة للمثل هذالكود و جزاك الله الخير لك اجمل تحياتي
رمهان قام بنشر أكتوبر 12, 2015 قام بنشر أكتوبر 12, 2015 (معدل) اخي ابا عارف هل وصلت لماتريد ؟ وياليت توضح انك ماتزال بحاجة ماسة لهذا الكود ؟ اي كود ؟ هل تقصد انه حتى بمعرفة اللغة لم ينجح الامر sendkey لضغط القاعدة واصلاحها خصوصا عند اختلاف الاصدارات وليس اللغة ؟ تحياتي تم تعديل أكتوبر 12, 2015 بواسطه رمهان
ابو عارف قام بنشر أكتوبر 13, 2015 الكاتب قام بنشر أكتوبر 13, 2015 السلام عليكم و رحمة الله و بركاته اخي ابو جود جربت الوحدة النمطية بعد تعديل بسيط ، تغير كلمة Private الى Public ولكن وجدت يعرض نوع لغة تنسيق في نظام و من البداية انا كنت في حاجة للمعرفة لغة الاكسس ما لاعلاقة له في اعدادات المحلية في النظام، ولكن كما قلت في مشاركة سابقة عدم توافر كود او وحدة النمطية للتحديد لغة الحالية الاكسس.لزمني الامر نسيان تلك المشروع و و اما اختلاف نسخ الاكسس من السهل معرفة النسخة ، و سبب الآخر هو عدم امكانية عمل Sendkeys بعد اقفال البرنامج من التعديل وياليت توضح انك ماتزال بحاجة ماسة لهذا الكود ؟ اي كود ؟ كود او وحدة النمطية للكشف عن نوع لغة System Locale (هذا ما افتكرت امس انها هي) ولكن بعد تجربة وجدت انها للكشف عن نوع لغة تنسيق الجهاز مثل اسماء مجلدات ، نوع ارقام ،مربعات حوار و غيرهم و الغرض : من المعروف ان اختيار لغة انجليزي في System Locale يتحول احرف لغة العربية الى رموز في اكواد vba و يعرض رسائل خطاء عند ما يكون اسماء عناصر التحكم او تسميات باللغة العربية ، حبيت انتباه المستخدم برسالة ليقوم بالتغير System Locale حسب تعليمات موجوة في القاعدة. و بعد بحث وجدت وحدة النمطية في احد مواقع الاجنبية يرجع خصائص تالية في النظام و اخيرا اشكرك مرة اخرى استاذ ابا جود موفق و دائما الى الامام. اخوك ابوعارف
yms12 قام بنشر أكتوبر 13, 2015 قام بنشر أكتوبر 13, 2015 اخي الكريم ابو عارف الا ارسالت لنا هذا الكود لكي تسنقيد
رمهان قام بنشر أكتوبر 13, 2015 قام بنشر أكتوبر 13, 2015 اخي ابو عارف مسألة اكتشف لغة التطبيق اي القوائم هل هي بالعربي ام غير ذلك اتوقع ممكنه وباحتمال ثلاث طرق 1. دوال api 2. القراءة من الريجيستري 3 . دالة مستخدم اقرأ بها احد حروف القوائم الموجودة ومعرفة لغة الحرف ولكن قبل ذلك خلينا نتطفل شوية ونريد معرفة لماذا تريد معرفة واجهة اللغة ؟ خلينا نعرف الهدف ؟ يمكن نوصل له بطريقة اخرى ؟ مثلا ضغط واصلاح القاعدة الحالية ؟! مشكور على سعة صدرك ابا عارف
ابو عارف قام بنشر أكتوبر 14, 2015 الكاتب قام بنشر أكتوبر 14, 2015 السلام عليكم و رحمة الله و بركاته الاستاذ اباجود/ اولاً اشكرك من اعماق قلبي على المتابعة ثانيا في وقت الحالي اريد معرفة نوع اللغة لانني صممت البرنامج بالواجهات انجليزي و العربي و البشتو، احرف بشتو متشابه احرف لغة العربية تقريباً اريد برمجة واجهة الانجليزية مع لغة انجليزية في الاكسس والغتين العربية والبشتو، مع لغة العربية و فكرة ضغط و اصلاح قاعدة مفتوحة برمجيا فيها عوائق كثيرة افضل طريقة تقسيم القاعدة و ضغط قاعدة جداول من القاعدة نماذج. و لك تحايا
رمهان قام بنشر أكتوبر 14, 2015 قام بنشر أكتوبر 14, 2015 تمام ابا اعارف ! ونرجع للموضوع الاساسي وعنوانه ! اليس هذا استاذ عارف بيرجع اللغة الحالية للواجهات ؟ ! : Application.LanguageSettings.LanguageID(msoLanguageIDUI) مع وضع المرجع ل office object library تحياتي
ابو عارف قام بنشر أكتوبر 15, 2015 الكاتب قام بنشر أكتوبر 15, 2015 يا سلام يا ابا جود! هذا ما يسمونها بلاغة ، بالضبط هذا ما كنت ابحث عنه لازائد ولا ناقص. جزاك الله الخير الاخ / Yms12 انشيء وحدة النمطية بالكود التالي Public Const LOCALE_ILANGUAGE As Long = &H1 'language id Public Const LOCALE_SLANGUAGE As Long = &H2 'localized name of lang Public Const LOCALE_SENGLANGUAGE As Long = &H1001 'English name of lang Public Const LOCALE_SABBREVLANGNAME As Long = &H3 'abbreviated lang name Public Const LOCALE_SNATIVELANGNAME As Long = &H4 'native name of lang Public Const LOCALE_ICOUNTRY As Long = &H5 'country code Public Const LOCALE_SCOUNTRY As Long = &H6 'localized name of country Public Const LOCALE_SENGCOUNTRY As Long = &H1002 'English name of country Public Const LOCALE_SABBREVCTRYNAME As Long = &H7 'abbreviated country name Public Const LOCALE_SNATIVECTRYNAME As Long = &H8 'native name of country Public Const LOCALE_SINTLSYMBOL As Long = &H15 'intl monetary symbol Public Const LOCALE_IDEFAULTLANGUAGE As Long = &H9 'def language id Public Const LOCALE_IDEFAULTCOUNTRY As Long = &HA 'def country code Public Const LOCALE_IDEFAULTCODEPAGE As Long = &HB 'def oem code page Public Const LOCALE_IDEFAULTANSICODEPAGE As Long = &H1004 'def ansi code page Public Const LOCALE_IDEFAULTMACCODEPAGE As Long = &H1011 'def mac code page Public Const LOCALE_IMEASURE As Long = &HD '0 = metric, 1 = US '#if(WINVER >= &H0400) Public Const LOCALE_SISO639LANGNAME As Long = &H59 'ISO abbreviated language name Public Const LOCALE_SISO3166CTRYNAME As Long = &H5A 'ISO abbreviated country name '#endif /* WINVER >= as long = &H0400 */ '#if(WINVER >= &H0500) Public Const LOCALE_SNATIVECURRNAME As Long = &H1008 'native name of currency Public Const LOCALE_IDEFAULTEBCDICCODEPAGE As Long = &H1012 'default ebcdic code page Public Const LOCALE_SSORTNAME As Long = &H1013 'sort name '#endif /* WINVER >= &H0500 */ Public Declare Function GetThreadLocale Lib "kernel32" () As Long Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long Public Declare Function GetLocaleInfo Lib "kernel32" _ Alias "GetLocaleInfoA" _ (ByVal locale As Long, _ ByVal LCType As Long, _ ByVal lpLCData As String, _ ByVal cchData As Long) As Long Public Function GetUserLocaleInfo(ByVal dwLocaleID As Long, ByVal dwLCType As Long) As String Dim sReturn As String Dim r As Long r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) If r Then sReturn = Space$(r) r = GetLocaleInfo(dwLocaleID, dwLCType, sReturn, Len(sReturn)) If r Then GetUserLocaleInfo = Left$(sReturn, r - 1) End If End If End Function ثم في النموذج انشيء 21 مربعات نص و سميها من Text1 الى Text21 انشيء زرالامر و الصق هذالكود في حدث عند النقر Dim LCID As Long LCID = GetSystemDefaultLCID() Text1 = GetUserLocaleInfo(LCID, LOCALE_ICOUNTRY) Text2 = GetUserLocaleInfo(LCID, LOCALE_IDEFAULTANSICODEPAGE) Text3 = GetUserLocaleInfo(LCID, LOCALE_IDEFAULTCODEPAGE) Text4 = GetUserLocaleInfo(LCID, LOCALE_IDEFAULTCOUNTRY) Text5 = GetUserLocaleInfo(LCID, LOCALE_IDEFAULTEBCDICCODEPAGE) If Len(Text5) = 0 Then Text5 = "Sorry, Windows 2000 only" Text6 = GetUserLocaleInfo(LCID, LOCALE_IDEFAULTLANGUAGE) Text7 = GetUserLocaleInfo(LCID, LOCALE_IDEFAULTLANGUAGE) Text8 = GetUserLocaleInfo(LCID, LOCALE_ILANGUAGE) Select Case GetUserLocaleInfo(LCID, LOCALE_IMEASURE) Case "0": Text9 = "0 - Metric system is used" Case "1": Text9 = "1 - U.S. system is used" End Select Text10 = GetUserLocaleInfo(LCID, LOCALE_SCOUNTRY) Text11 = GetUserLocaleInfo(LCID, LOCALE_SENGCOUNTRY) Text12 = GetUserLocaleInfo(LCID, LOCALE_SENGLANGUAGE) Text13 = GetUserLocaleInfo(LCID, LOCALE_SINTLSYMBOL) Text14 = GetUserLocaleInfo(LCID, LOCALE_SISO3166CTRYNAME) Text15 = GetUserLocaleInfo(LCID, LOCALE_SISO639LANGNAME) Text16 = GetUserLocaleInfo(LCID, LOCALE_SABBREVLANGNAME) Text17 = GetUserLocaleInfo(LCID, LOCALE_SLANGUAGE) Text18 = GetUserLocaleInfo(LCID, LOCALE_SNATIVELANGNAME) Text19 = GetUserLocaleInfo(LCID, LOCALE_SNATIVECTRYNAME) Text20 = GetUserLocaleInfo(LCID, LOCALE_SNATIVECURRNAME) If Len(Text20) = 0 Then Text20 = "Sorry, Windows 2000 only" Text21 = GetUserLocaleInfo(LCID, LOCALE_SSORTNAME) If Len(Text21) = 0 Then Text21 = "Sorry, Windows 2000 only" ملحوظة:- يبدو الكود مخصص للويندوز 2000 ولكن حسب تجربته يعمل في ويندوز سفن ايضا و باقي انواع ويندوز.. الله اعلم بالتوفيق
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.