• 0
Kamali_82

هل يمكن جعل الوحدات النمطية او الكودات تعمل على الـ bit-64 أو الـ 32- bit في نفس الوقت

سؤال

السلام عليكم و رحمة الله و بركاته

وجدت قبل ايام هنا موضوعا عن حل لمشكلة الكودات في انظمة الـ bit-64 و هو موضوع ليس بجديد و لكن رد جديد عليه اظهره في الواجهة و للأسف قمت بعمل الاجراء المقترح و دون نتيجة

و وضعت تسأولا و لم أجد الرد و ها أنا أضعه في موضوع جديد

هل من حل يمكن من خلاله جعل الوحدات النمطية او الكودات تعمل على الـ bit-64 أو الـ 32- bit في نفس الوقت و دون الحاجة لاي تعديل حين يتم نقل قاعدة البيانات من جهاز لآخر ؟؟

و هذه اول وحدة نمطية

Option Compare DatabaseOption ExplicitDeclare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPublic Function OpenFile(sFileName As String)On Error GoTo Err_OpenFile    OpenFile = ShellExecute(Application.hWndAccessApp, "Open", sFileName, "", "C:\", 1)Exit_OpenFile:    Exit FunctionErr_OpenFile:    MsgBox Err.Number & " - " & Err.Description    Resume Exit_OpenFileEnd Function

الوحدة النمطية الثانية

Option Compare DatabaseOption ExplicitType OPENFILENAME  lStructSize As Long  hwndOwner As Long  hInstance As Long  lpstrFilter As String  lpstrCustomFilter As String  nMaxCustFilter As Long  nFilterIndex As Long  lpstrFile As String  nMaxFile As Long  lpstrFileTitle As String  nMaxFileTitle As Long  lpstrInitialDir As String  lpstrTitle As String  Flags As Long  nFileOffset As Integer  nFileExtension As Integer  lpstrDefExt As String  lCustData As Long  lpfnHook As Long  lpTemplateName As StringEnd TypePrivate Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _  "GetOpenFileNameA" (OFN As OPENFILENAME) As BooleanPrivate Declare Function GetSaveFileName Lib "comdlg32.dll" Alias _  "GetSaveFileNameA" (OFN As OPENFILENAME) As BooleanPrivate Const ALLFILES = "All files"Function MakeFilterString(ParamArray varFilt() As Variant) As String  Dim strFilter As String  Dim intRes As Integer  Dim intNum As Integer  intNum = UBound(varFilt)  If (intNum <> -1) Then    For intRes = 0 To intNum      strFilter = strFilter & varFilt(intRes) & vbNullChar    Next    If intNum Mod 2 = 0 Then      strFilter = strFilter & "*.*" & vbNullChar    End If    strFilter = strFilter & vbNullChar  End If  MakeFilterString = strFilterEnd FunctionPrivate Sub InitOFN(OFN As OPENFILENAME)  With OFN    .hwndOwner = hWndAccessApp    .hInstance = 0    .lpstrCustomFilter = vbNullString    .nMaxCustFilter = 0    .lpfnHook = 0    .lpTemplateName = 0    .lCustData = 0    .nMaxFile = 511    .lpstrFileTitle = String(512, vbNullChar)    .nMaxFileTitle = 511    .lStructSize = Len(OFN)    If .lpstrFilter = "" Then      .lpstrFilter = MakeFilterString(ALLFILES)    End If    .lpstrFile = .lpstrFile & String(512 - Len(.lpstrFile), vbNullChar)  End WithEnd SubFunction OpenDialog(OFN As OPENFILENAME) As Boolean  Dim intRes As Integer  InitOFN OFN  intRes = GetOpenFileName(OFN)  If intRes Then    With OFN      .lpstrFile = Left$(.lpstrFile, InStr(.lpstrFile, vbNullChar) - 1)    End With  End If  OpenDialog = intResEnd Function

و هناك وحدات نمطية اخرى ساطرحها لاحقا بارك الله فيكم و جزاكم خيرا

و السلام عليكم

 

 

 

 

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

15 إجابة على هذا السؤال .

  • -1

تفضل اخي الكريم

 

تم التعديل على جميع  الأكواد في الوحدات النمطية بحيث تعمل على نظام 64 بت  و  32 بت

 

za-Kamal_Db_32&64Bit.rar

 

بالتوفيق

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 1

بحسب ما فهمته

1- نحتاج الى وضع هذه الوظيفة العامة في وحدة نمطية جديده

Public Function IsWin32OrWin64() As String    Dim proc_query As String    Dim proc_results As Object    Dim info As Object        proc_query = "SELECT * FROM Win32_Processor"    Set proc_results = GetObject("Winmgmts:").ExecQuery(proc_query)    For Each info In proc_results        IsWin32OrWin64 = info.AddressWidth & "-bit"    Next infoEnd Function

2 - نضع في اول نموذج يتم فتحه في القاعدة هذه الأكواد البرمجية

Dim OSOS = IsWin32OrWin64()if  OS= "64-bit" then'دالة التصريح للنظام 64 بت   Private Declare PtrSafe FunctionElse'دالة التصريح للنظام 32 بت   Private Declare FunctionEnd if

3 - نقوم بتعديل الوحدات النمطية لتعمل على النظامين مع تعديل التالي

Long  تتغير الى  LongPtr
دالة ()Len  تتغير الى  ()LenB حتى يتم قبولها في نظام 64 فقط
Private Sub Form_Open(Cancel As Integer) Me.TimerInterval = 3000Dim OSOS = IsWin32OrWin64() Select Case OSCase Is = "32-bit" Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPublic Function OpenFile(sFileName As String)On Error GoTo Err_OpenFile    OpenFile = ShellExecute(Application.hWndAccessApp, "Open", sFileName, "", "C:\", 1)Exit_OpenFile:    Exit FunctionErr_OpenFile:    MsgBox Err.Number & " - " & Err.Description    Resume Exit_OpenFileEnd Function  Case Is = "64-bit"  'Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As LongPtr) As LongPtrPublic Function OpenFile(sFileName As String)On Error GoTo Err_OpenFile    OpenFile = ShellExecute(Application.hWndAccessApp, "Open", sFileName, "", "C:\", 1)Exit_OpenFile:    Exit FunctionErr_OpenFile:    MsgBox Err.Number & " - " & Err.Description    Resume Exit_OpenFileEnd Function     End SelectEnd Sub

أعلاه تم تعديل الوحدة النمطية الأولى فهل ما قمت به صحيح أم لا ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 1

 الوحدة النمطية الثانية و إن كان ما قمت به صحيحا فسأقوم به في باقي الوحدات المستخدمة

Private Sub Form_Open(Cancel As Integer) Me.TimerInterval = 3000Dim OSOS = IsWin32OrWin64() Select Case OSCase Is = "32-bit" Private Type BROWSEINFO  hOwner As Long  pidlRoot As Long  pszDisplayName As String  lpszTitle As String  ulFlags As Long  lpfn As Long  lParam As Long  iImage As Long  strInitialDir As StringEnd TypePrivate Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _            "SHGetPathFromIDListA" (ByVal pidl As Long, _            ByVal pszPath As String) As Long            Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _            "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _            As Long            Private Const BIF_RETURNONLYFSDIRS = &H1Public Function BrowseFolder(Optional szDialogTitle As String, _                            Optional szInitialDir As String) As String  Dim x As Long, bi As BROWSEINFO, dwIList As Long  Dim szPath As String, wPos As Integer     With bi        .hOwner = hWndAccessApp        .lpszTitle = szDialogTitle        .strInitialDir = szInitialDir        .ulFlags = BIF_RETURNONLYFSDIRS    End With        dwIList = SHBrowseForFolder(bi)    szPath = Space$(512)    x = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)        If x Then        wPos = InStr(szPath, Chr(0))        BrowseFolder = Left$(szPath, wPos - 1)    Else        BrowseFolder = ""    End IfEnd Function  Case Is = "64-bit" Private Type BROWSEINFO  hOwner As LongPtr  pidlRoot As LongPtr  pszDisplayName As String  lpszTitle As String  ulFlags As LongPtr  lpfn As LongPtr  lParam As LongPtr  iImage As LongPtr  strInitialDir As StringEnd TypePrivate Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _            "SHGetPathFromIDListA" (ByVal pidl As LongPtr, _            ByVal pszPath As String) As LongPtr            Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _            "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _            As LongPtr            Private Const BIF_RETURNONLYFSDIRS = &H1Public Function BrowseFolder(Optional szDialogTitle As String, _                            Optional szInitialDir As String) As String  Dim x As LongPtr, bi As BROWSEINFO, dwIList As LongPtr  Dim szPath As String, wPos As Integer     With bi        .hOwner = hWndAccessApp        .lpszTitle = szDialogTitle        .strInitialDir = szInitialDir        .ulFlags = BIF_RETURNONLYFSDIRS    End With        dwIList = SHBrowseForFolder(bi)    szPath = Space$(512)    x = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)        If x Then        wPos = InStr(szPath, Chr(0))        BrowseFolder = Left$(szPath, wPos - 1)    Else        BrowseFolder = ""    End IfEnd Function     End SelectEnd Sub

أعلاه تم تعديل الوحدة النمطية الثانية فهل ما قمت به صحيح أم لا ؟؟

تم تعديل بواسطه Kamali_82
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

السلام عليكم و رحمة الله و بركاته

هل من حل لهذا الطلب بارك الله فيكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

السلام عليكم و رحمة الله و بركاته إذا لم يكن بالإمكان جعل الوحدات النمطية تعمل على كلا النظامين فهل يمكن التعديل لتعمل على نظام الـ bit-64

جربت ما جاء في هذا الموضوع و لكن للأسف لم ينجح معي

 

حل لمن يعاني من رسالة The code in this project must be updated for use on 64-bit system

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

اخي الفاضل

 

السلام عليكم ورحمة الله وبركاته

 

راجع هذا الرابط فقد تم الشرح الكامل لهذا الموضوع مع وضع المثال اللازم لذلك

 

 

http://arabteam2000-forum.com/index.php/topic/285546-declare-statements-on-64-bit/

 

بالتوفيق

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

اخي الفاضل

 

السلام عليكم ورحمة الله وبركاته

 

راجع هذا الرابط فقد تم الشرح الكامل لهذا الموضوع مع وضع المثال اللازم لذلك

 

 

http://arabteam2000-forum.com/index.php/topic/285546-declare-statements-on-64-bit/

 

بالتوفيق

 

و عليكم السلام و حمة الله و بركاته

أختي الكريمة بارك الله فيك و جزاكِ خيراً و وفقكِ لما يحبه و يرضاه من القول و العمل في عافية

إطلعت على الموضوع الذي أشرتِ إليه و سأحاول العمل بما ذكرتيه فيه

و لكن لأن الموجود على جهازي 32 بت و انوي و بعد تعديل الوحدات النمطية التي لها علاقة بنوع النظام التحول الى نظام 64 بت و لا مجال لدي لتجربة صحته من عدمه الآن فسأضع هنا ما اقوم بتعديله طمعاً بتصحيح أي خطأ قد أقع فيه

مرةً ثانية بارك الله فيكِ و جزاكِ خيراً و جعل جُهدكِ في ميزانِ حسناتكِ +1

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

رد مكرر

تم تعديل بواسطه Kamali_82
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

اخي الفاضل

 

بارك الله بك وجزاك الله كل خير

 

لا يمكن الجزم بصحة او عدم صحة ما قمت بعمله حتى تضع لنا كامل البرنامج لديك هنا

 

حتى يمكننا النظر فيه وتعديل اللازم ، لذا حاول رفع القاعدة التي بها الوحدات النمطية 

 

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

اخي الفاضل

 

بارك الله بك وجزاك الله كل خير

 

لا يمكن الجزم بصحة او عدم صحة ما قمت بعمله حتى تضع لنا كامل البرنامج لديك هنا

 

حتى يمكننا النظر فيه وتعديل اللازم ، لذا حاول رفع القاعدة التي بها الوحدات النمطية 

 

بالتوفيق

 

أُختي الفاضلة بارك الله بكِ وجزاك الله بخيرٍ مما دعوتِ لي

سأقوم إن شاء الله بوضع البرنامج بالرغم من إنه غير مكتمل و بعض الوحدات النمطية غير مفعلة ضمن البرنامج و كنت قد إستخدمتها في برنامج سابق و أنوي إستخدمها في هذه القاعدة الجديدة و سأقوم صباح الغد إن شاء الله برفعها هنا

وفقكِ الله و بارك فيكِ و جعل جُهدكِ في ميزان حسناتكِ

و السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

اخي الفاضل

 

بارك الله بك وجزاك الله كل خير

 

لا يمكن الجزم بصحة او عدم صحة ما قمت بعمله حتى تضع لنا كامل البرنامج لديك هنا

 

حتى يمكننا النظر فيه وتعديل اللازم ، لذا حاول رفع القاعدة التي بها الوحدات النمطية 

 

بالتوفيق

 

أُختي الفاضلة بارك الله بكِ وجزاك الله بخيرٍ مما دعوتِ لي

سأقوم إن شاء الله بوضع البرنامج بالرغم من إنه غير مكتمل و بعض الوحدات النمطية غير مفعلة ضمن البرنامج و كنت قد إستخدمتها في برنامج سابق و أنوي إستخدمها في هذه القاعدة الجديدة و سأقوم صباح الغد إن شاء الله برفعها هنا

وفقكِ الله و بارك فيكِ و جعل جُهدكِ في ميزان حسناتكِ

و السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

اخي الفاضل

 

بارك الله بك وجزاك الله كل خير

 

لا يمكن الجزم بصحة او عدم صحة ما قمت بعمله حتى تضع لنا كامل البرنامج لديك هنا

 

حتى يمكننا النظر فيه وتعديل اللازم ، لذا حاول رفع القاعدة التي بها الوحدات النمطية 

 

بالتوفيق

 

 

اختي الفاضلة زهرة بارك الله بكِ و أعتذر لتأخري بسبب عارض صحي تراكمت بعده الأعمال فلم أتمكن من رفع البرنامج

قمت بمحاولة التعديل و عمل ما ذكرته أعلاه فكان يعطيني خطأ و لذلك آثرت أن أرفع ما عندي هنا دون تعديل خشية أن أقوم من حيث لا أدري بتخريب هذه الوحدات

و سامحيني إن كنتُ سأثقل عليك بطلبي هذا و لا أملك إلا الدعاء لكِ و أقول جزاكِ الله خيراً و بارك بكِ و حفظكِ و رعاكِ و وفقكِ لما يُحبهُ من القول و العمل في عافية

و جزا الله جميع المشاركين و القائمين على هذا المنتدى الطيب المُبارك خير الجزاء

 

أعتذر عن تكرار الملف المرفق فيظهر أن هناك خللاً حيث أني كنت أقوم بتحديد الملف و الضغط لرفعه و لكن و بعد فترة كانت الملاحظة  No file selected

Kamal_Db_32&64Bit.rar

Kamal_Db_32&64Bit.rar

Kamal_Db_32&64Bit.rar

تم تعديل بواسطه Kamali_82
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

السلام عليكم و رحمة الله و بركاته

للتذكير بالموضوع و أعتذر مجددا عن تأخري بالرد

و مقترحي للأخت الفاضلة زهرة جزاها الله خيرا أن يكون لها موضوعاً في هذا الخصوص و يتم تثبيته كما في موضوعها 

الشرح الكامل التفصيلي المصور لمعرفة نسخة الأكسيس وتخفيض الأمان برمجيا

و خاصة و أن كثير من هذه الوحدات النمطية هي مما أخذناه من مشاركاتها و ردودها على المشاركين هنا في هذا المنتدى المبارك و الله اسأل أن يجعل جهدها في ميزان حسناتها و أن يجزيها خير الجزاء
 

 

تم تعديل بواسطه Kamali_82
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

السلام عليكم و رحمة الله و بركاته

بالرغم من حاجتي لبرنامج يعمل على الـ64 بت في ما يخص عملي الخاص بعيدا عن الآكسس فقد قمت بتأجيل تحديث النظام و الابقاء على نظام الـ32 بت لتشغيل قاعدة البيانات الخاصة بي إلى أن اجد حلاً لهذا الموضوع

بارك الله في الجميع هنا و جزاكم الله خيرا

و السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • -1

تفضل اخي الكريم

 

تم التعديل على جميع  الأكواد في الوحدات النمطية بحيث تعمل على نظام 64 بت  و  32 بت

 

attachicon.gifza-Kamal_Db_32&64Bit.rar

 

بالتوفيق

بارك الله فيكِ و حفظكِ أختي الفاضلة و جزاكِ خيراً و جعل جهدكِ في ميزانِ حسناتكِ

اعجز هنا عن أفيك حقكِ و لا أجد خيراً من أقول لكِ جزاكِ الله خيراً و وفقك لما يُحبهُ من القول و العمل في عافية

و السلام عليكم و رحمة الله و بركاته

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .