اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تغيير سجل النموذج عن طريق نموذج اخر VBA


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

السلام عليكم

 vba حاب اتعلم اكثر في الاكسس وخصوصا بكتابة اكواد 

وواجهتني مشكلة اتمنى ان اجد منكم المساعدة

  قمت بتصميم نموذج بسيط فيه حقلين رقم العميل واسم العميل

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

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

وهنا واجهتني المشكلة

 يتم الاتي userpassfinder في الحقل  frmLogin كيف اجعل المستخدم اذا قام بادخال الرقم السري الخاص به في نموذج 

الى اسم المستخدم المطابق للرقم السري fsubUser  يقوم الكود بالبحث عن الرقم السري في جدول المستخدمين ثم يقوم بتغيير السجل في النموذج الفرعي

حاولت كتابة الكود لكن لم استطع

Private Sub userpassfinder_AfterUpdate()
    If userpassfinder = "SELECT * FROM tblUsers WHERE UserPass = " & userpassfinder Then
        Forms!frm!fsubUser.RecordSource = "SELECT * FROM tblUsers WHERE UserPass = " & userpassfinder
    Else
        MsgBox "ÇáÑÞã ÇáÓÑí ÛíÑ ÕÍíÍ"
        userpassfinder.SetFocus
    End If
End Sub

  

Database3.zip

طبعا تبويب الصلاحيات سوف يكون مخفي عن المستخدم

    اذا تم الدخول بنجاح frmLogin ايضا احاول ان اخفي نموذج

رابط هذا التعليق
شارك

 

لم استطيع آمل منكم المساعدة

هل ما اقوم به صحيح؟ او لا يمكن تنفيذه

Private Sub userpassfinder_AfterUpdate()
Dim SRV As Integer
Dim rs As DAO.Recordset
    If (txtGoTo & vbNullString) = vbNullString Then Exit Sub
    SRV = Nz(DLookup("[UserPass]", "tblUsers", "[UserPass] = " & [userpassfinder]))
    Set rs = Me!fsubUser.Form.RecordsetClone
    rs.FindFirst "[UserPass] = " & SRV
    If rs.NoMatch Then
        MsgBox "wrong Pass", _
               vbOKOnly + vbInformation
    Else
        Me.Bookmark = rs.Bookmark
    End If
    rs.Close
    userpassfinder = Null
End Sub

 

رابط هذا التعليق
شارك

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

 

اخي شفان الظاهر انا وانت تم مراسلتنا!!

 

تفضل هذا الكود المعدل:

Dim SRV As Integer
Dim rs As DAO.Recordset
    If ([userpassfinder] & vbNullString) = vbNullString Then Exit Sub
    
    'هذا الامر أبطأ من الامر التالي
    'SRV = DLookup("[UserPass]", "tblUsers", "[UserPass] = " & [userpassfinder])
    'If IsNull(SRV) Then
    '    MsgBox "الرقم السري غير صحيح"
    '    Me.userpassfinder.SetFocus
    '    Exit Sub
    'End If
    
    'هذا الامر اسرع
    SRV = DCount("*", "tblUsers", "[UserPass] = " & [userpassfinder])
    If SRV = 0 Then
        MsgBox "الرقم السري غير صحيح"
        Me.userpassfinder.SetFocus
        Exit Sub
    End If
    
'الحل الاول
    DoCmd.OpenForm "frm"
    Forms!frm.SetFocus
    Forms!frm!fsubUser.SetFocus
    Forms!frm!fsubUser!UserPass.SetFocus
    DoCmd.FindRecord Me.userpassfinder, , , , , , True


'الحل الثاني
'    DoCmd.OpenForm "frm"
'    Set rs = Forms!frm!fsubUser.Form.RecordsetClone
'    rs.FindFirst "[UserPass] = " & Me.userpassfinder
'    If rs.NoMatch Then
'        MsgBox "wrong Pass", _
'               vbOKOnly + vbInformation
'    Else
'        Forms!frm!fsubUser.Form.Bookmark = rs.Bookmark
'    End If
'    rs.Close
'    userpassfinder = Null

 

جعفر

791.Database3.accdb.zip

  • Like 2
رابط هذا التعليق
شارك

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