عرض الإصدار الكامل : لوسمحتو اريد مساعدة عاجلة في قواعد البيانات
الزمان
21/04/2005, 09:25 AM
أولا:-
شباب لو سمحتوا أريد مساعدة في قواعد البيانات وذالك عن طريق برمجة كائن ADO في الفجول بيسك بحيث احصل على كودات لتنفيذ الأتي :
1) إجراء لإدخال البيانات في قاعدة البيانات
2) إجراء لتعديل البيانات في قاعدة البيانات
3) إجراء لحساب عدد السجلات في قاعدة البيانات
4) دالة لحذف بيانات من قاعدة البيانات
5) إجراء لاستعراض بيانات قاعدة البيانات
6) إجراء أو دالة لمعالجة خوارزمية الموضوع
7) عمل كلمة مرور في زر الأمر
ثانيا:
كيف بإمكاني تحويل ملف قاعدة البيانات إلى ملف تنفيذي بحيث إذا استخدمه شخص غيري لا يقدر أن يغير في البيانات وعلى سبيل المثال لا يمكنه أن ينضر إلى كود الفجول بيسك إذا كنت مستخدم الفجول بيسك .
وشكرا جزيلا,,,,
ملاحظة
علما ان قاعدة البيانات المستخدمة هي ACCESS
ابوعبيده
21/04/2005, 10:14 AM
السلام عليكم اخي الكريم ولا يهمك سوف نقوم بالواجب ان شاء الله
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 "áæ ÓãÍÊ ÇÏÎá ÇáÈíÇäÇÊ"
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("åá ÇäÊ ãÊÃßÏ ÈÃäß ÊÑíÏ ÍÐÝ åÐÇ ÇáÝÇíá¿", 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 ("ÇáÑÞã ÇáÚÓßÑí")
comSearch.AddItem ("tid")
comSearch.ListIndex = 0
End Sub
اخي هذه طريقتي الخاصه في ربط مع الديتابيس يوجد طريقه ثانيه ابسط من هذي سوف اقوم بشرحها لك
ان شاء الله
فنكشن
21/04/2005, 10:29 AM
السلام عليكم ورحمه الله وبركاته :
هذه الاكواد والطرق التي استخدمها :
'تعريف متغير يمثل قاعدة البيانات
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
تحياتي لك
ابوعبيده
21/04/2005, 10:39 AM
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
وهذه الطريقه لا بد ان تستخدم الديتابيس يعني لابد ان تكون جدول فيه الركورد الاول المستخدم والركورد الثاني كلمة السر
واي حاجه تريدها نحن تحت الخدمه اخي الكريم
اخوك ابوعبيده
الزمان
21/04/2005, 07:39 PM
شكرا جزيلا للاخوة ابو عبيدة و فنكشن داعيا الله سبحانه وتعالى ان يوفقكم في حياتكم العلمية والعملية .
ولكن لم اجد تفسير كيف احول قاعدة البيانات الى ملف تنفيذي
وشكرا مرة اخرى ,,,,
ابوعبيده
21/04/2005, 09:29 PM
لا شكر على واجب اخي الكريم
اما من حيث كيف تحسب السجلات في قاعدة البيانات فهذا الكود
data1.recordset.movenext
data1.recordset.RecordCount
اما من حيث الملف التنفيذي اذهب الى
file
make project1 exe
وان شاء الله سوف تحصل على الملف التنفيذي
الزمان
23/04/2005, 10:36 AM
اخي ابو عبيدة هذه الطريقة في التنفيذ تستخدم في برنامج الفجول بيسك بالنفس وانا اريده يكون في اكسس Access وارجو منك الافادة .
وشكرا,,,,,
ابوعبيده
23/04/2005, 03:05 PM
السلام عليكم اخي الكريم
هذه مشكله مايكروسوفت انك لا تسطيع عمل ملف تنفيذي في الاكسس
ولاكن توجد طريقه ثانيه وهي عمل رقم سري
حيث لا يمكن اي احد ان يرى قاعدة البيانات بدون الرقم السري
فنكشن
23/04/2005, 06:40 PM
اخي العزيز ابو عبيدة
الاحظ انك وضعت في المشاركة الرابعه وصاعدا الاكواد للتعامل مع الاداة Data وهي تعتمد على DAO وليس على ADO ...
وبالنسبه لما يتحدث عنه الاخ الزمان عن التحويل الى ملف exe فبالامكان تحويل الملف الى mde من القائمة ادوات ، ادوات مساعدة لقواعد البيانات ، انشاء ملف mde ..
ويتمتيز هذا النوع من الملفات بعدم امكانيه عرض كالئنات قاعدة البيانات في وضع عرض التصميم ...
كما ان هناك كود لأكسس يمنع عمل مفتاح الشفت عند تشغيل قاعدة البيانات لتجاوز عرض النموذج الذي تحدد عرضه في بدء التشغيل ...
واما بالنسبه لكلمه المرور لقاعدة بيانات اكسس فأسهل شيئ هو معرفه كلمه المرور لقاعدة بيانات من نوع اكسس صدقوني !!!
اخوكم طالب في : الحادي عشر :)
vBulletin إصدار 3.8.11، كافة الحقوق محفوظة ©2000-2026، مؤسسة Jelsoft المحدودة.