![]() |
|
|
#1
|
||||
|
||||
|
لوسمحتو اريد مساعدة عاجلة في قواعد البيانات
أولا:-
شباب لو سمحتوا أريد مساعدة في قواعد البيانات وذالك عن طريق برمجة كائن ADO في الفجول بيسك بحيث احصل على كودات لتنفيذ الأتي : 1) إجراء لإدخال البيانات في قاعدة البيانات 2) إجراء لتعديل البيانات في قاعدة البيانات 3) إجراء لحساب عدد السجلات في قاعدة البيانات 4) دالة لحذف بيانات من قاعدة البيانات 5) إجراء لاستعراض بيانات قاعدة البيانات 6) إجراء أو دالة لمعالجة خوارزمية الموضوع 7) عمل كلمة مرور في زر الأمر ثانيا: كيف بإمكاني تحويل ملف قاعدة البيانات إلى ملف تنفيذي بحيث إذا استخدمه شخص غيري لا يقدر أن يغير في البيانات وعلى سبيل المثال لا يمكنه أن ينضر إلى كود الفجول بيسك إذا كنت مستخدم الفجول بيسك . وشكرا جزيلا,,,, ملاحظة علما ان قاعدة البيانات المستخدمة هي ACCESS |
|
مادة إعلانية
|
|
#2
|
|||
|
|||
|
السلام عليكم اخي الكريم ولا يهمك سوف نقوم بالواجب ان شاء الله
ado(data access object) Dim WithEvents adoPrimaryRS As Recordset Dim mbChangedByCode As Boolean Dim mvBookMark As Variant Dim mbEditFlag As Boolean Dim mbAddNewFlag As Boolean Dim mbDataChanged As Boolean Private Sub Command1_Click() If txtSea = "" Then MsgBox "áæ ÓãÍÊ ÇÏÎá ÇáÈíÇä&Cce dil;Ê" Exit Sub End If txtSea = Trim(txtSea) adoPrimaryRS.MoveFirst 'adoPrimaryRS.Find "[comsearch]=" & " '" & txtSea & "'" adoPrimaryRS.Find (comSearch.Text & "='" & txtSea & "'") If adoPrimaryRS.AbsolutePosition < 0 Then MsgBox comSearch & " Not Found!!!" adoPrimaryRS.MoveFirst End If End Sub Private Sub Command10_Click() Unload Me End Sub Private Sub Command3_Click() 'If txt(0) = "" Or txt(1) = "" Or txt(2) = "" Or txt(3) = "" Or txt(4) = "" Then 'MsgBox "áÇ íäÈÛí Çä Êßæä åÐå ÇáÎÇäå ÝÇÑÛå" 'txt(0).SetFocus 'Exit Sub 'End If If Command3.Caption = "ÇÖÇÝå" Then Command3.Caption = "ÍÝÙ" Else Command3.Caption = "ÇÖÇÝå" End If On Error GoTo AddErr With adoPrimaryRS If Not (.BOF And .EOF) Then mvBookMark = .Bookmark End If .AddNew mbAddNewFlag = True End With ''''''''''''''''''''''''''''''''' 'Command4_Click txt(0).Text = id txt(1).Text = std txt(2).Text = tdate txt(3).Text = authy txt(4).Text = remarks ''''''''''''''''''''''''''''''''''' Exit Sub AddErr: MsgBox Err.Description 'Command4_Click End Sub Private Sub Command4_Click() On Error GoTo GoFirstError adoPrimaryRS.CancelUpdate adoPrimaryRS.MoveFirst mbDataChanged = False Exit Sub GoFirstError: MsgBox Err.Description End Sub Private Sub Command5_Click() On Error GoTo GoLastError adoPrimaryRS.CancelUpdate adoPrimaryRS.MoveLast mbDataChanged = False Exit Sub GoLastError: MsgBox Err.Description End Sub Private Sub Command6_Click() On Error GoTo GoNextError adoPrimaryRS.CancelUpdate If Not adoPrimaryRS.EOF Then adoPrimaryRS.MoveNext If adoPrimaryRS.EOF And adoPrimaryRS.RecordCount > 0 Then Beep adoPrimaryRS.MoveLast End If mbDataChanged = False Exit Sub GoNextError: MsgBox Err.Description End Sub Private Sub Command7_Click() On Error GoTo GoPrevError adoPrimaryRS.CancelUpdate If Not adoPrimaryRS.BOF Then adoPrimaryRS.MovePrevious If adoPrimaryRS.BOF And adoPrimaryRS.RecordCount > 0 Then Beep adoPrimaryRS.MoveFirst End If mbDataChanged = False Exit Sub GoPrevError: MsgBox Err.Description End Sub Private Sub Command8_Click() If txt(0) = "" Or txt(1) = "" Or txt(2) = "" Or txt(3) = "" Or txt(4) = "" Then MsgBox "áÇ íäÈÛí Çä Êßæä åÐå ÇáÎÇäå ÝÇÑÛå" 'txt(0).SetFocus Exit Sub End If On Error GoTo UpdateErr adoPrimaryRS.UpdateBatch adAffectAll If mbAddNewFlag Then adoPrimaryRS.MoveLast End If mbEditFlag = False mbAddNewFlag = False mbDataChanged = False Exit Sub UpdateErr: MsgBox Err.Description End Sub Private Sub Command9_Click() Dim s As String s = MsgBox("åá ÇäÊ ãÊÃßÏ ÈÃäß ÊÑíÏ ÍÐÝ åÐÇ ÇáÝÇíá&i quest;", vbYesNo + vbQuestion, "ÊÍÐíÑ") If s = vbYes Then On Error GoTo DeleteErr With adoPrimaryRS .Delete .MoveNext If .EOF Then .MoveLast End With Exit Sub End If DeleteErr: MsgBox Err.Description & "[command_Click]" End Sub Private Sub Form_Load() Dim db As Connection Set db = New Connection db.CursorLocation = adUseClient ' db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & k.FileName & ";" db.Open " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=user.mdb;Persist Security Info=False" Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "select tid,std,tdate,authy,remarks from talimy", db, adOpenStatic, adLockOptimistic Dim oText As TextBox For Each oText In Me.txt Set oText.DataSource = adoPrimaryRS Next mbDataChanged = False ' comSearch.AddItem ("ÇáÑÞã ÇáÚÓßÑ&ia cute;") comSearch.AddItem ("tid") comSearch.ListIndex = 0 End Sub اخي هذه طريقتي الخاصه في ربط مع الديتابيس يوجد طريقه ثانيه ابسط من هذي سوف اقوم بشرحها لك ان شاء الله |
|
#3
|
|||
|
|||
|
السلام عليكم ورحمه الله وبركاته :
هذه الاكواد والطرق التي استخدمها : رمز:
'تعريف متغير يمثل قاعدة البيانات
Public DB As New ADODB.Connection
'تعريف متغير للإتصال بالجدول Table1
Public RS As New ADODB.Recordset
'تعريف متغير لتحديد هل يتم اضافة سجل جديد ام تعديل بيانات سجل موجود
Public bAdd As Boolean
'تعريف متغير يعود بقيمة نص البحث
Dim sSText As String
'إجراء للإتصال بقاعدة البيانات
Public Sub ConData()
DB.CursorLocation = adUseClient
DB.Provider = "Microsoft.JET.OLEDB.4.0;"
DB.Open App.Path & "\Data.mdb"
RS.Open "Table1", DB, adOpenStatic, adLockPessimistic
End Sub
'إجراء لعرض البيانات على مربعات النصوص
Public Sub ViewRecord()
If Not RS.RecordCount = 0 Then
With Form1
.txtID = ""
.txtName = ""
.txtDesc = ""
If Not IsNull(RS![ID]) Then .txtID = RS![ID]
If Not IsNull(RS![Name]) Then .txtName = RS![Name]
If Not IsNull(RS![Desc]) Then .txtDesc = RS![Desc]
End With
End If
End Sub
'اجراء للإنتقال الى السجل الأول
Public Sub MoveFirst()
If Not RS.BOF Then RS.MoveFirst
If RS.BOF And RS.RecordCount > 0 Then
Beep
Exit Sub
End If
ViewRecord
End Sub
'إجراء للإنتقال الى السجل السابق
Public Sub MovePrev()
If Not RS.BOF Then RS.MovePrevious
If RS.BOF And RS.RecordCount > 0 Then
Beep
Exit Sub
End If
ViewRecord
End Sub
'إجراء للإنتقال إلى السجل التالي
Public Sub MoveNext()
If Not RS.EOF Then RS.MoveNext
If RS.EOF And RS.RecordCount > 0 Then
Beep
Exit Sub
End If
ViewRecord
End Sub
'إجراء للإنتقال إلى السجل الأخير
Public Sub MoveLast()
If Not RS.EOF Then RS.MoveLast
If RS.EOF And RS.RecordCount > 0 Then
Beep
Exit Sub
End If
ViewRecord
End Sub
'إجراء للتحكم بتمكين الأدوات
Public Sub EnabledUnEnabled(N As Boolean)
With Form1
.txtID.Locked = True
.txtName.Locked = N
.txtDesc.Locked = N
.cmdFirst.Enabled = N
.cmdPrev.Enabled = N
.cmdNext.Enabled = N
.cmdLast.Enabled = N
.cmdAdd.Enabled = N
.cmdDel.Enabled = N
.cmdEdit.Enabled = N
.cmdSave.Enabled = Not N
.cmdCancel.Enabled = Not N
If RS.RecordCount = 0 Then
.cmdEdit.Enabled = False
.cmdDel.Enabled = False
End If
End With
End Sub
'اجراء لإضافة سجل جديد
Public Sub AddRecord()
With Form1
.txtID.Text = ""
.txtName.Text = ""
.txtDesc.Text = ""
EnabledUnEnabled (False)
.txtName.SetFocus
End With
bAdd = True
End Sub
'إجراء حفظ البيانات
Public Sub SaveRecord()
If Trim(Form1.txtName) = "" Then
MsgBox "لا يمكن حفظ قيمة خاليه للإسم ، الرجاء إدخال إسم", vbInformation, "نقص في المدخلات"
Form1.txtName.SetFocus
Exit Sub
End If
With RS
If bAdd = True Then .AddNew
![Name] = Trim(Form1.txtName.Text)
If Not Trim(Form1.txtDesc.Text) = "" Then ![Desc] = Trim(Form1.txtDesc.Text)
.Update
End With
If bAdd = True Then
RS.Requery
RS.MoveLast
End If
EnabledUnEnabled (True)
ViewRecord
End Sub
'إجراء لإلغاء الأمر
Public Sub Cancel()
EnabledUnEnabled (True)
End Sub
'إجراء لتعديل البيانات
Public Sub Edit()
EnabledUnEnabled (False)
Form1.txtName.SetFocus
bAdd = False
End Sub
'إجراء لحذف السجل
Public Sub DeleteRecord()
If MsgBox("هل أتريد بالفعل أن تحذف السجل الحالي وكافة بياناته ؟", vbQuestion + vbYesNo, "الرجاء التأكيد") = vbYes Then
RS.Delete adAffectCurrent
With Form1
.txtID = ""
.txtName = ""
.txtDesc = ""
End With
EnabledUnEnabled (True)
RS.MovePrevious
End If
ViewRecord
End Sub
'إجراء للبحث في Form1
Public Sub Srch()
If sSText = Form1.txtSrch Then RS.MoveNext Else RS.MoveFirst
sSText = Form1.txtSrch.Text
RS.Find "[Name]='" & Trim(Form1.txtSrch) & "'"
Call ViewRecord
End Sub
وهذا الكود يعرض لك مجموع السجلات في الجدول الذي تتعامل معه بالكائن rs : رمز:
MsgBox rs.RecordCount ولمزيد من المواضيع والدروس والنقاشات حول الاتصال بقواعد البيانات والتعامل معها من خلال تقنية ADO يمكنك زيارة المنتدى الموجود في توقيعي جامعة اهلا عرب وستجد هناك كتاب كامل عن ADO وعده مذكرات خاصه بلغة الاستعلام SQL تحياتي لك |
|
#4
|
|||
|
|||
|
1)
data1.recordset.addnew 2) data1.updaterecord 3) data1.recordset.delete data1.recordset.movenext if data1.recordset.eof then data1.recordset.movelast end if 5) اخي لستعراض البيانات لا بد ان تستخدم grid في هذا او تستخدم reports 6) لم افهم بالضبط ما تريدوه الرجوا التوضيح 7) اخي هل تريد استخدام كلمة المرور static او dynmaic على العموم سوف اقوم بأعطائك الطريقتين مع بعض الطريقه الاولى dim pass as string pass=inputbox("لو سمحت ادخل كلمه المرور") if pass="ابوعبيده" then form1.show else msgbox"لقد قمت بأدخال كلمه المرور خاطئه" end if الطريقه الثانيه rs.Open "select count(password) from useres where username='" & Combo1.Text & "' And Password='" & txtPassword.Text & "'", con, 2, 3 If rs(0) = 1 Then Unload Me 'Form1.Show MDIForm1.Show Else MsgBox "Invalid Password, try again!", , "Login" txtPassword.SetFocus SendKeys "{Home}+{End}" txtPassword.Text = "" End If rs.Close وهذه الطريقه لا بد ان تستخدم الديتابيس يعني لابد ان تكون جدول فيه الركورد الاول المستخدم والركورد الثاني كلمة السر واي حاجه تريدها نحن تحت الخدمه اخي الكريم اخوك ابوعبيده |
|
#5
|
||||
|
||||
|
شكرا جزيلا للاخوة ابو عبيدة و فنكشن داعيا الله سبحانه وتعالى ان يوفقكم في حياتكم العلمية والعملية .
ولكن لم اجد تفسير كيف احول قاعدة البيانات الى ملف تنفيذي وشكرا مرة اخرى ,,,, |
|
#6
|
|||
|
|||
|
لا شكر على واجب اخي الكريم
اما من حيث كيف تحسب السجلات في قاعدة البيانات فهذا الكود data1.recordset.movenext data1.recordset.RecordCount اما من حيث الملف التنفيذي اذهب الى file make project1 exe وان شاء الله سوف تحصل على الملف التنفيذي |
|
#7
|
||||
|
||||
|
اخي ابو عبيدة هذه الطريقة في التنفيذ تستخدم في برنامج الفجول بيسك بالنفس وانا اريده يكون في اكسس Access وارجو منك الافادة .
وشكرا,,,,, |
|
#8
|
|||
|
|||
|
السلام عليكم اخي الكريم
هذه مشكله مايكروسوفت انك لا تسطيع عمل ملف تنفيذي في الاكسس ولاكن توجد طريقه ثانيه وهي عمل رقم سري حيث لا يمكن اي احد ان يرى قاعدة البيانات بدون الرقم السري |
|
#9
|
|||
|
|||
|
اخي العزيز ابو عبيدة
الاحظ انك وضعت في المشاركة الرابعه وصاعدا الاكواد للتعامل مع الاداة Data وهي تعتمد على DAO وليس على ADO ... وبالنسبه لما يتحدث عنه الاخ الزمان عن التحويل الى ملف exe فبالامكان تحويل الملف الى mde من القائمة ادوات ، ادوات مساعدة لقواعد البيانات ، انشاء ملف mde .. ويتمتيز هذا النوع من الملفات بعدم امكانيه عرض كالئنات قاعدة البيانات في وضع عرض التصميم ... كما ان هناك كود لأكسس يمنع عمل مفتاح الشفت عند تشغيل قاعدة البيانات لتجاوز عرض النموذج الذي تحدد عرضه في بدء التشغيل ... واما بالنسبه لكلمه المرور لقاعدة بيانات اكسس فأسهل شيئ هو معرفه كلمه المرور لقاعدة بيانات من نوع اكسس صدقوني !!! اخوكم طالب في : الحادي عشر
|
|
|