اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر (معدل)

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

لا بد بين فترة وأخرى من اقتحام مجالات جديدة وتنمية المهارات البرمجية لدى للمبرمج 🙂

هذي المرة طرح أخي @TQTHAMI فكرة برنامج للكلمات المتقاطعة ، فلمعت في رأسي الفكرة  وقررت خوض التجربة فنتج عنها ما يلي☺️

:: ((( لعبة الكلمات المتقاطعة ))) ::

وهنا بعض الصور واللقطات للعبة

image.png.b8cdf54d6b1a81074f0574c386d70e70.png

image.gif.e5019eda3cde69536f98844b29465a4d.gif

image.png.b632568358e57c6ecfdc4158f576fe67.png

إضافة لعبة جديدة وتصميمها

image.png.8e602a71a075dd2b84d8dac181f8fed4.png

:: وأخيرا تحميل الملف المفتوح 😊 :: 

لعبة الكلمات المتقاطعة.accdb

 

:: ((( الإصدار الثاني 2.0 ))) ::

أضفت زرين في نافذة إعداد اللعبة :
image.png.fba0f7e4636cdda4804550c63f7c5fd4.png

طباعة اللعبة / طباعة الحل :

image.png.9879b5a5572437b1419d0b16c1419b4c.png

 

image.png.a4f55e71d3e33b596c987a5985aaef79.png

التحميل 🙂 :

‏‏لعبة الكلمات المتقاطعة الإصدار 2.accdb1.63 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 0 downloads

 
تم تعديل بواسطه Moosak
تم إضافة الإصدار الثاني 😊✌
  • Like 4
  • Thanks 2
قام بنشر

يسعدني أن أكون أول المعلقين ، هذا لأنك من المبدعين القليلين أخي @Moosak ، وما يعجبني في نمط نفكيرك إنه خلّاق ومبتكر :wub:

 

أبدعت جداً ، وعمل جميل وتصميم أنيق يليق بشخص أنيق :smile:

  • Like 3
قام بنشر

سبحان الله

رجعت بي الى الوراء  خمسين سنة .. كنت في الخامسة عشر ..  اتتبع الجرائد ( الصحف )  من اجلها .. واجد متعة لا  يعادلها متعة اذا حصلت على واحدة .

في ذلك الوقت لا تخلوا جريدة او مجلة منها .

  • Like 1
  • Haha 3
قام بنشر

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

مهما قدمت من كلمات شكر لا أستطع أن أوافيك حقك
فأنت فعلت الكثير وقدمت لي يد العون كثير

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

أتمني لك من أعماق قلبي أن يمن الله عليك بالخير والصحة والعافية تقديراً لما قدمته لي وللجميع من مساعدات واعمال في سبيل سعادتهم  
و كما قال رسول الله صلى الله عليه وسلم: ( من صُنع إليه معروف فقال لفاعله جزاك الله خيرًا فقد أبلغ في الثناء )

فجزاك الله خيرًا

 

 

  • Like 2
قام بنشر

شكرا لمروركم جميعا 🙂 

الأساتذة والخبراء والمبدعين .. @Foksh @عمر ضاحى @ابوخليل @زياد الحسناوي @TQTHAMI @kkhalifa1960  ...

لكم كل التحية والتقدير .. 😊🌼🌷🌹

وشكرا لمشاعركم الطيبة وكلماتكم الرقراقة .. إنما نتعلم منكم .. وهي بضاعتكم نردها إليكم 🙂🌺

  • Thanks 3
  • 8 months later...
قام بنشر

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

 

فكرة جميلة في استخدام قواعد البيانات في امور لسنا معتادين عليها ، شكرا جزبلا لمشاركة الفكرة والبرنامج 🙂

 

جعفر

  • Like 2
قام بنشر
في 19‏/6‏/2024 at 12:49, jjafferr said:

شكرا جزبلا لمشاركة الفكرة والبرنامج 🙂

العفو مهندسنا العود 🙂🌷
نسير على خطاكم 😊🌹

قام بنشر
58 دقائق مضت, M.Abd Allah said:

رووووعاتك ايها الجراح العظيم 😉😉😉

منور الحتة يباش مهندس 😊🌹

  • Haha 1
قام بنشر
منذ ساعه, Moosak said:

منور الحتة يباش مهندس 😊🌹

دا نورك يا خال انا كان بقالي يجي بتاع ٤ سنين هنا وكنت ناسي الرقم السري ☺️☺️☺️

  • Like 1
قام بنشر

اخي موسى .. باقي حبة أو تكة .. لاكتمال العمل

اذا تهيأ لك الوقت المناسب 

تقرير يعرض الشبكة المختارة وتحتها الأسئلة على ورقة A4 .. فيما لو اردت توزيعها (في مناسبة) .. على عدد من الطلاب او الأصحاب 

بحيث يمكن طباعة الشبكة فارغة وتحتها الأسئلة ..

وايضا طباعة الشبكة محلولة لتكون بيد المعلم

 

 

قام بنشر
12 ساعات مضت, ابوخليل said:

قرير يعرض الشبكة المختارة وتحتها الأسئلة على ورقة A4 .. فيما لو اردت توزيعها (في مناسبة) .. على عدد من الطلاب او الأصحاب 

بحيث يمكن طباعة الشبكة فارغة وتحتها الأسئلة ..

وايضا طباعة الشبكة محلولة لتكون بيد المعلم

أبشر بسعدك عمي @ابوخليل 😊🌹

أضفت زرين في نافذة إعداد اللعبة :
image.png.fba0f7e4636cdda4804550c63f7c5fd4.png

طباعة اللعبة / طباعة الحل :

image.png.9879b5a5572437b1419d0b16c1419b4c.png

 

image.png.a4f55e71d3e33b596c987a5985aaef79.png

التحميل 🙂 :

 

‏‏لعبة الكلمات المتقاطعة الإصدار 2.accdb

  • Like 1
  • Thanks 1
قام بنشر
5 ساعات مضت, Moosak said:

أبشر بسعدك عمي @ابوخليل 😊🌹

أضفت زرين في نافذة إعداد اللعبة :
image.png.fba0f7e4636cdda4804550c63f7c5fd4.png

طباعة اللعبة / طباعة الحل :

image.png.9879b5a5572437b1419d0b16c1419b4c.png

 

image.png.a4f55e71d3e33b596c987a5985aaef79.png

التحميل 🙂 :

 

‏‏لعبة الكلمات المتقاطعة الإصدار 2.accdb 1.63 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 5 downloads

بسم الله ماشاء فعلا جراح 😊😊😊

  • Like 1
قام بنشر

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

تمام ولا اجمل .. برنامج احترافي لإعداد وحفظ وطباعة .. الكلمات المتقاطعة  ( تعلم بطريقة اللعب والتسلية)

جزاك الله خيرا واحسن اليك

  • Like 2
قام بنشر
11 ساعات مضت, ابوخليل said:

برنامج احترافي لإعداد وحفظ وطباعة .. الكلمات المتقاطعة  ( تعلم بطريقة اللعب والتسلية)

الله .. الله .. الله .. 🤗

العنوان لوحده رزانة وهيبة .. 🙂 

 

أبنائكم وتلاميذكم عمي @ابوخليل 😊🌷

أجاب الله دعواتك 🙂🤲

قام بنشر

طيب استاذ @Moosak :fff:

بما انك لك السبق فى هذا الموضوع 

بصراحة انا قبل فترة حاولت تصميم قاعدة وبسبب انشغالى فى العمل توقفت كالعادة :biggrin2:

ولكن بما ان استاذى الجليل ومعلمى القدير و والدى الحبيب الاستاذ @ابوخليل  أعجبته الفكرة وكانت هذه كلماته

في 24‏/6‏/2024 at 21:23, ابوخليل said:

تمام ولا اجمل .. برنامج احترافي لإعداد وحفظ وطباعة .. الكلمات المتقاطعة  ( تعلم بطريقة اللعب والتسلية)

بالعند فى استاذى الجليل ومعلمى القدير صاحب المكتبة العامرة :yes: الاستاذ @Moosak :fff:

فى شغل احترافى زى القاعدة فى المشاركة الاصلية

وفى شغل فاخر من الاخر  :biggrin2: ايون صدقنى زيمبئولك كده

الشغل الفاخر من الاخر بقه

لما تفتح القاعدة تحدد لغة الاسئلة والاجوبة عربى واللا انجليزى لانها تفرق طبعا فى اتجاه النص  >>--->    اومااااااااااااال

وكمان تحدد اجمالى مربعات الشبكة ان هنا شايفها مثبته  10  *  10  تقريبا       

يكون فى مرونه فى وضع وتعديل الاسئلة والاجوبة 

واللا ايه الكلام ؟!

 

 

 

  • Haha 1
قام بنشر

أنا عارف أنك عايز الإحترافي الإحترافي اللي ما حصلشي @ابو جودي 😅😁

لكن الوضع دالوقتي هو ده :biggrin: :

11 دقائق مضت, ابو جودي said:

وبسبب انشغالى فى العمل توقفت كالعادة :biggrin2:

وأما الحبشتكنات دي :

13 دقائق مضت, ابو جودي said:

لما تفتح القاعدة تحدد لغة الاسئلة والاجوبة عربى واللا انجليزى لانها تفرق طبعا فى اتجاه النص  >>--->    اومااااااااااااال

وكمان تحدد اجمالى مربعات الشبكة ان هنا شايفها مثبته  10  *  10  تقريبا       

يكون فى مرونه فى وضع وتعديل الاسئلة والاجوبة 

واللا ايه الكلام ؟!

 

مكانها في الـ Version 2.16 إن شاء الله :wavetowel:

 

 

  • Haha 1
قام بنشر
1 ساعه مضت, Moosak said:

مكانها في الـ Version 2.16 إن شاء الله :wavetowel:

 

طيب اتفضل يا سيدى اللبنة الاولى لـ  Version 2.16 إن شاء الله   :wavetowel:

الاول استخدم زر الامر Go To Crossword Setting 
بكده تروح لنموذج اعداد الاسئلة

وعلشان تشوف الحلويات والجمال تعالى نرخم ع الاكسس علشان نخليه ينفذ طلباتنا دوس ع الزرار Update Grid

 

وبعد كده علشان تاخد لفة اغلق النموذج وروح للنموذج frmSplash
البيانات اللى ظاهرة  دى هى الاعدادت الحالية والتى تبين نوع اللغة لوضع الاسئلة والاجوبة وعدد مربعات الشبكة فى الصف الواحد

والمرة دى اختر  زر الامر New Setting Game  من النموذج اللى حيفتح اختار شكل الشبكة ونوع اللغة وجرب اكتر من مره 

اه مفيش خدع ولا تركات ولا مربعات مخفيه ده بئه شغل فاخر من الاخر 

عاوز تشوف حلويات اكتر من كده روح يا سيدى وكمل لعب وامسح النموذج بتاع الشبكة خالص frmCrossword
وبعد كده خد لفة تانى  وروح للنموذج frmSplash
والمرة دى برضو اختر  زر الامر New Setting Game  من النموذج اللى حيفتح اختار شكل الشبكة ونوع اللغة وجرب اكتر من مره وشوف نموذج 
frmCrossword هتلاقيه رجع تانى ما هو لازقه عامل زى القرش البرانى تخذفة وتمحيه يلف ويرجع لك تانى :biggrin2::yes:

وكمل انت بقة اظن انا كده عملت معاك فوق الصح 

الباقى شوية ظبط عادى لا اكتر ولا اقل

والموضوع سهل سهل خااااالص ولذيذ ولا اروع والله بجد :yes:

وكده نقدر نقول نلعب ونتعلم ونتحدى نفسنا والاكسس

وبكده انا فى انتظار رأى معلمى الجليل واستاذى القدير و والدى الحبيب الاستاذ @ابوخليل :fff:

فى الافكار المتواضعة دى لعمل نسخة حبيننا الغالى الاستاذ @Moosak :fff: حققنا له حلمه فى عمل  Version 2.16 إن شاء الله ؟

 

Officena Crossword Game.accdb

قام بنشر

وطبعا لان المرفقات ممكن يصيبها العطب 

الشغل كله كله كله تقريبا من خلال الاكواد فى الوحدة النمطية اللى باسم :  basCrossword

وباقى الاكواد فى النماذح مجرد استدعاء لا اكثر ولا اقل 

Option Compare Database
Option Explicit

' Constants for form and table names
Public Const Cnst_FormName_Settings As String = "frmCrosswordSetting"
Public Const Cnst_FormName_QuestionsAnswers As String = "frmQuestionsAnswers"
Public Const Cnst_FormName_Crossword As String = "frmCrossword"
Public Const Cnst_TableName_Settings As String = "tblSetting"
Public Const Cnst_TableName_Questions As String = "tblQuestionsAnswers"
Public Const Cnst_TableName_GridMap As String = "tblCrosswordGridMap"

' Variables for grid settings
Public intRowCellsNumber As Integer
Public intTotalCellsNumber As Integer
Public strLanguage As String

' Sub to add a new setting
Public Sub AddSetting()
    On Error GoTo AddSetting_Error
    
    ' Delete records from related tables before adding new settings
    DeleteRecordsFromTable Cnst_TableName_GridMap
    DeleteRecordsFromTable Cnst_TableName_Questions
    DeleteRecordsFromTable Cnst_TableName_Settings
    
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset(Cnst_TableName_Settings, dbOpenDynaset)
    
    ' Add a new record to the setting table if it's empty
    If rs.EOF And rs.BOF Then
        rs.AddNew
            rs!CountRowCol = intRowCellsNumber
            rs!Language = strLanguage
        rs.Update
    Else
        MsgBox "Table is not empty. Add records accordingly."
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing

    Exit Sub
    
AddSetting_Error:
    MsgBox "Error adding records: " & Err.Description, vbExclamation
End Sub

' Sub to create a new grid
Public Sub CreateNewGrid()
    On Error GoTo CreateNewGrid_Error

    Dim frm As Form
    Dim intColumnIndex As Integer
    Dim intRowIndex As Integer
    
    DoCmd.OpenForm Cnst_FormName_Crossword, acDesign
    Set frm = Forms(Cnst_FormName_Crossword)

    ' Define positions for controls
    Dim intPosTop As Integer
    Dim intPosLeft As Integer
    intPosTop = 0.1667 * 1440
    intPosLeft = 0.0833 * 1440

    ' Define sizes for controls
    Dim intCellWidth As Integer
    Dim intCellHeight As Integer
    intCellWidth = 0.3556 * 1440
    intCellHeight = 0.3556 * 1440

    ' Define left position for labels and text boxes
    Dim intPosLeftLabel As Integer
    Dim intPosLeftTxtBox As Integer
    intPosLeftLabel = intPosLeft + intCellWidth
    intPosLeftTxtBox = intPosLeft + intCellWidth
    
    ' Create column labels
    For intColumnIndex = 1 To intRowCellsNumber
        Dim strColLabelName As String
        strColLabelName = "lblCol" & intColumnIndex
        Dim intColLabelLeft As Integer
        intColLabelLeft = intPosLeftLabel + ((intColumnIndex - 1) * intCellWidth)
        Dim colLabel As control
        Set colLabel = CreateControl(Cnst_FormName_Crossword, acLabel, acDetail, , , intColLabelLeft, intPosTop, intCellWidth, intCellHeight)
        colLabel.Name = strColLabelName
        colLabel.Caption = intColumnIndex
        colLabel.Tag = "GridControl"
        colLabel.Visible = True
        colLabel.TextAlign = 2 ' Center alignment
    Next intColumnIndex

    ' Create row labels
    For intRowIndex = 1 To intRowCellsNumber
        Dim strRowLabelName As String
        strRowLabelName = "lblRow" & intRowIndex
        Dim intRowLabelTop As Integer
        intRowLabelTop = intPosTop + (intRowIndex * intCellHeight)
        Dim rowLabel As control
        Set rowLabel = CreateControl(Cnst_FormName_Crossword, acLabel, acDetail, , , intPosLeft, intRowLabelTop, intCellWidth, intCellHeight)
        rowLabel.Name = strRowLabelName
        rowLabel.Caption = intRowIndex
        rowLabel.Tag = "GridControl"
        rowLabel.Visible = True
        rowLabel.TextAlign = 2 ' Center alignment
    Next intRowIndex

    ' Create text boxes for grid
    For intRowIndex = 1 To intRowCellsNumber
        For intColumnIndex = 1 To intRowCellsNumber
            Dim strControlName As String
            strControlName = "txt" & ((intRowIndex - 1) * intRowCellsNumber + intColumnIndex)
            Dim ctrl As control
            Set ctrl = CreateControl(Cnst_FormName_Crossword, acTextBox, acDetail, , , intPosLeftTxtBox + ((intColumnIndex - 1) * intCellWidth), intPosTop + (intRowIndex * intCellHeight), intCellWidth, intCellHeight)
            ctrl.Name = strControlName
            ctrl.Tag = "GridControl"
            ctrl.Visible = True
            ctrl.TextAlign = 2 ' Center alignment
        Next intColumnIndex
    Next intRowIndex

    DoCmd.Close acForm, Cnst_FormName_Crossword, acSaveYes
    Exit Sub

CreateNewGrid_Error:
    MsgBox "Error creating new grid: " & Err.Description
End Sub

' Ensure the form exists, and create it if it doesn't
Public Sub EnsureFormExists()
    On Error Resume Next

    ' Try to open the form
    DoCmd.OpenForm Cnst_FormName_Crossword, acNormal
    
    If Err.Number <> 0 Then
        ' If form doesn't exist, create it
        CreateNewForm
    End If
    
    DoCmd.Close acForm, Cnst_FormName_Crossword
End Sub

' Create a new form and save it with the specified name
Public Sub CreateNewForm()
    Dim frmNewForm As Form
    Set frmNewForm = CreateForm

    ' Set form properties
    With frmNewForm
        .ScrollBars = 0 ' Neither
        .RecordSelectors = False ' No record selector
        .NavigationButtons = False ' No Navigation
    End With

    Dim strTempFormName As String
    strTempFormName = frmNewForm.Name

    ' Save the form
    DoCmd.Save acForm, strTempFormName
    DoCmd.Close acForm, strTempFormName

    ' Rename the form to the main form name
    DoCmd.Rename Cnst_FormName_Crossword, acForm, strTempFormName

    ' Open the settings form
    DoCmd.Close acForm, Cnst_FormName_Settings, acSaveYes
    DoCmd.OpenForm Cnst_FormName_Settings, acNormal
End Sub

' Sub to delete the old grid
Public Sub DeleteOldGrid()
    On Error Resume Next

    Dim frm As Form
    Dim ctrl As control
    Dim colControlsToDelete As New Collection
    Dim intIndex As Integer

    DoCmd.OpenForm Cnst_FormName_Crossword, acDesign
    Set frm = Forms(Cnst_FormName_Crossword)

    ' Collect controls to delete
    For Each ctrl In frm.Controls
        If ctrl.ControlType = acTextBox Or ctrl.ControlType = acLabel Then
            If ctrl.Tag = "GridControl" Then
                colControlsToDelete.Add ctrl.Name
            End If
        End If
    Next ctrl

    ' Delete collected controls
    For intIndex = colControlsToDelete.Count To 1 Step -1
        DeleteControl Cnst_FormName_Crossword, colControlsToDelete(intIndex)
    Next intIndex
'|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    DoCmd.Close ObjectType:=acForm, ObjectName:=Cnst_FormName_Crossword, Save:=acSaveYes

    Set ctrl = Nothing
    Set frm = Nothing
End Sub

' Generate a grid based on the total number of controls
Public Sub GenerateGrid()
    On Error GoTo GenerateGrid_Error

    EnsureFormExists

    If intRowCellsNumber > 0 And intRowCellsNumber <= 144 Then
        DeleteOldGrid
        CreateNewGrid
        AddRecordsToTable intTotalCellsNumber
        DoCmd.Close acForm, "frmNewSettingGame", acSaveYes
    Else
        MsgBox "Please enter an integer between 3 and 12."
    End If
    Exit Sub

GenerateGrid_Error:
    CreateNewForm
End Sub

' Function to add records to the grid map table
Public Function AddRecordsToTable(ByVal intNumberOfRecords As Integer) As Boolean
    On Error GoTo AddRecords_Error
    
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim intIndex As Integer
    
    DeleteRecordsFromTable Cnst_TableName_GridMap
    DeleteRecordsFromTable Cnst_TableName_Questions

    Set db = CurrentDb
    Set rs = db.OpenRecordset(Cnst_TableName_GridMap, dbOpenDynaset)
    
    If rs.EOF And rs.BOF Then
        ' If the table is empty, add the required number of records
        For intIndex = 1 To intNumberOfRecords
            rs.AddNew
               rs!characterID = intIndex
            rs.Update
        Next intIndex
    Else
        ' If the table is not empty, inform the user
        MsgBox "Table is not empty. Add records accordingly."
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    AddRecordsToTable = True
    Exit Function
    
AddRecords_Error:
    DeleteRecordsFromTable Cnst_TableName_GridMap
    DeleteRecordsFromTable Cnst_TableName_Questions
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    AddRecordsToTable = False
End Function

' Sub to delete all records from a specified table
Public Sub DeleteRecordsFromTable(ByVal strTableName As String)
    On Error GoTo DeleteRecords_Error
    
    Dim db As DAO.Database
    Dim strSQL As String
    
    Set db = CurrentDb
    
    ' Define SQL statement to delete all records from the specified table
    strSQL = "DELETE FROM " & strTableName
    
    ' Execute SQL statement
    db.Execute strSQL, dbFailOnError
    
    Set db = Nothing
    Exit Sub
    
DeleteRecords_Error:
    MsgBox "Error deleting records: " & Err.Description, vbExclamation
    Set db = Nothing
End Sub

' Function to check if a field exists in a recordset
Private Function FieldExists(ByVal rs As DAO.Recordset, ByVal strFieldName As String) As Boolean
    On Error Resume Next
    FieldExists = (Not IsError(rs.Fields(strFieldName).Value))
End Function

' Function to retrieve settings from Cnst_TableName_Settings table
' Uses DLookup and Split functions to retrieve values for CountRowCol and Language fields
' Returns True if successful, False otherwise
Public Function GetSettings() As Boolean
    Dim settingRow As String
    Dim settingsArray() As String
    Dim rowCellsNumber As Integer
    Dim Language As String
    
    ' Retrieve the full row value from the table
    settingRow = DLookup("CountRowCol & ',' & Language", Cnst_TableName_Settings)
    
    ' Use Split function to separate the retrieved values
    settingsArray = Split(settingRow, ",")
    
    ' Retrieve CountRowCol value from the table
    If UBound(settingsArray) >= 0 Then
        intRowCellsNumber = Val(settingsArray(0)) ' Convert value to integer
    End If
    
    ' Retrieve Language value from the table
    If UBound(settingsArray) >= 1 Then
        strLanguage = settingsArray(1)
    End If
    
    
'    ' You can use the retrieved values as needed here
'    Debug.Print "Row/Column Count: " & intRowCellsNumber
'    Debug.Print "Language: " & strLanguage
    
    ' Set the function return value to True to indicate success
    GetSettings = True
End Function

'    Set frm = Forms!frmMain!frmCrossword.Form
Public Function UpdateGridWithWords()
    On Error GoTo UpdateGridWithWords_Error

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim RSCrossword As DAO.Recordset
    Dim QuestionValue As String
    Dim AnswerValue As String
    Dim StartRow As Integer
    Dim StartCol As Integer
    Dim Direction As String
    Dim i As Integer
    Dim intQuestionID As Integer
    Dim frm As Form


    Set db = CurrentDb()
    Set rs = db.OpenRecordset(Cnst_TableName_Questions, dbOpenDynaset)
    Set RSCrossword = db.OpenRecordset(Cnst_TableName_GridMap, dbOpenDynaset)

'    Set frm = Forms(strformGrid).Form ' Get the reference to the open form

    Set frm = Forms(Cnst_FormName_Settings)(Cnst_FormName_Crossword).Form

    If Not (rs.EOF And rs.BOF) Then
        rs.MoveFirst
        Do While Not rs.EOF
            If Not FieldExists(rs, "QuestionID") Or Not FieldExists(rs, "Question") Or Not FieldExists(rs, "Answer") Or Not FieldExists(rs, "StartRow") Or Not FieldExists(rs, "StartCol") Or Not FieldExists(rs, "Direction") Then
                MsgBox "Error: One or more required fields are missing in the table " & Cnst_TableName_Questions, vbExclamation
                Exit Function
            End If

            intQuestionID = rs!QuestionID
            QuestionValue = rs!Question
            AnswerValue = Replace(rs!Answer, " ", "")
            StartRow = rs!StartRow
            StartCol = rs!StartCol
            Direction = rs!Direction

            For i = 0 To Len(AnswerValue) - 1
                Dim controlName As String
                Dim characterID As Integer
                Dim currentChar As String

                currentChar = Mid(AnswerValue, i + 1, 1) ' Get the current character

                If strLanguage = "Arabic" Then
                    If Direction = "Horizontal" Then
                        controlName = "txt" & ((StartRow - 1) * intRowCellsNumber + (StartCol - i))
                        characterID = (StartRow - 1) * intRowCellsNumber + (StartCol - i)
                    ElseIf Direction = "Vertical" Then
                        controlName = "txt" & ((StartRow - 1 + i) * intRowCellsNumber + StartCol)
                        characterID = (StartRow - 1 + i) * intRowCellsNumber + StartCol
                    End If
                ElseIf strLanguage = "English" Then
                    If Direction = "Horizontal" Then
                        controlName = "txt" & ((StartRow - 1) * intRowCellsNumber + (StartCol + i))
                        characterID = (StartRow - 1) * intRowCellsNumber + (StartCol + i)
                    ElseIf Direction = "Vertical" Then
                        controlName = "txt" & ((StartRow - 1 + i) * intRowCellsNumber + StartCol)
                        characterID = (StartRow - 1 + i) * intRowCellsNumber + StartCol
                    End If
                End If

                With RSCrossword
                    .FindFirst "characterID = " & characterID
                    If Not .NoMatch Then
                        .Edit
                        !QuestionID = intQuestionID
                        !AnswerChar = currentChar
                        .Update
                    End If
                End With


                If frm.Controls(controlName).Tag = "GridControl" Then
                    frm.Controls(controlName).Value = currentChar
                End If
            Next i

            rs.MoveNext
        Loop
    End If

    rs.Close
    RSCrossword.Close
    Set rs = Nothing
    Set RSCrossword = Nothing
    Set db = Nothing
    Set frm = Nothing

    Exit Function

UpdateGridWithWords_Error:
    Debug.Print "Error updating grid with words: " & Err.Number & " " & Err.Description
End Function

Public Sub RepaintAndProcessEvents(ByRef formOrControl As Object)
    ' Repaint the form or control
    formOrControl.Repaint
    
    ' Allow the system to process events
    DoEvents
End Sub

ولو سمعت حد بيقول عاوز شرح هاخد بعضى واروح العب فى حتة تانيه  :clapping::jump:

بهزر طبعا اللى عاوز شرح يتعب شوية ويحاول يحلل ويفهم ولما يعطل يسأل 

 

ما هو مش هأكتب الكود فى ساعات واشرحه فى ايام :eek2:

قام بنشر

الله أكبر .. الله أكبر :clapping:

الناس كلها في حتة .. وأنت في حتة تانية خاااااااااااااااااااااااالص :biggrin:

شغل معلمين محترم .. وتفكير إبداعي مش خارج الصندوق بس .. دا من كوكب ثاااااني :cool:

بسم الله ماشاء الله .. مش خسارة عليك المليون جنيه والله :wavetowel:

نص ساعة وأنا أحلل الكود وأقطع فيه .. فعلا أنت تخليني أعيد التفكير في نفسي وشغلي 😂

أحييك على المهارة دي .. ربنا يبارك لك يارب 😊🤲🏻

  • Haha 1
قام بنشر
35 دقائق مضت, Moosak said:

الناس كلها في حتة .. وأنت في حتة تانية خاااااااااااااااااااااااالص :biggrin:

طبعا اكيــــد هم فى بيتهم وانا فى بيتى انا 

35 دقائق مضت, Moosak said:

شغل معلمين محترم .. وتفكير إبداعي مش خارج الصندوق بس .. دا من كوكب ثاااااني :cool:

لا والله من دماغى انا من كوكب الارض ومن مصر :yes:

35 دقائق مضت, Moosak said:

بسم الله ماشاء الله .. مش خسارة عليك المليون جنيه والله :wavetowel:

هي فين دى انا مش شايف اى حاجة ! انت بعد كل ده تخون العشرة وتضحك على يا حبيب الملايين 

35 دقائق مضت, Moosak said:

نص ساعة وأنا أحلل الكود وأقطع فيه

نص ساعة بس ؟ :eek2:

سبحان الله 

فعلا القارئ كالحالب والسامع كالشارب

احلب ان فى الكود بالساعات وانت تيجى بسهولة ع الماشى تشربه فى نص ساعه بس 

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

35 دقائق مضت, Moosak said:

فعلا أنت تخليني أعيد التفكير في نفسي وشغلي 😂

أحييك على المهارة دي .. ربنا يبارك لك يارب 😊🤲🏻

ويحك لله درك يا رجل حياكم الله وبياكم ...

مهارة ايه الهمام المقدام لا املك منها ذرة

هذا فضل الله تعالى ثم اساتذتنا الذين نتعلم منهم وعلى خطاهم نسير فنحن طلاب العلم نطوف في ربوع وبساتين استاذتنا فنقطف من كل بستان زهرة ونرتشف من كل نبع قطره

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

 

يلا الواجب بتاعك تعمل الحقول السودا وتكمل مشروعك الـ  Version 2.16 إن شاء الله  ثم تخبرنا عن رابط المشروع النهائى علشان المساكين امثالى يريدون ملئ مكتبتهم الخاوية

جزاكم الله خيـــرا على دعواتكم الطيبة :fff:

احبكم في الله ولوجه الله  ♥ 🥰

انا اتحمس عندما انافسك

بكل صراحة انت ند قوى ومتعب جدا جدا جدا اتعب عندما اتنافس معك ..

ولكن هى والله حب ومودة ولله وفى ذلك فليتنافس المتنافسون وذلك ميدان  المتحابين المجانين فلتخلع نعليك ولتشمر عن ساعديك :mad:

 

  • Haha 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • اضف...

Important Information