سبلة العرب
سبلة عُمان الصحيفة الإلكترونية الأسئلة الشائعة التقويم البحث

العودة   سبلة العرب > سبلة الكمبيوتر والتقنية

ملاحظات

 
 
أدوات الموضوع البحث في الموضوع تقييم الموضوع
  #1  
قديم 21/04/2005, 09:25 AM
صورة عضوية الزمان
الزمان الزمان غير متواجد حالياً
عضو متميز
 
تاريخ الانضمام: 22/02/2000
الإقامة: oman
المشاركات: 1,224
لوسمحتو اريد مساعدة عاجلة في قواعد البيانات

أولا:-

شباب لو سمحتوا أريد مساعدة في قواعد البيانات وذالك عن طريق برمجة كائن ADO في الفجول بيسك بحيث احصل على كودات لتنفيذ الأتي :
1) إجراء لإدخال البيانات في قاعدة البيانات
2) إجراء لتعديل البيانات في قاعدة البيانات
3) إجراء لحساب عدد السجلات في قاعدة البيانات
4) دالة لحذف بيانات من قاعدة البيانات
5) إجراء لاستعراض بيانات قاعدة البيانات
6) إجراء أو دالة لمعالجة خوارزمية الموضوع
7) عمل كلمة مرور في زر الأمر

ثانيا:

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

ملاحظة
علما ان قاعدة البيانات المستخدمة هي ACCESS
  مادة إعلانية
  #2  
قديم 21/04/2005, 10:14 AM
ابوعبيده ابوعبيده غير متواجد حالياً
عضو نشيط
 
تاريخ الانضمام: 12/12/2004
المشاركات: 294
السلام عليكم اخي الكريم ولا يهمك سوف نقوم بالواجب ان شاء الله
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 "&aacute;&Ccedil; &iacute;&auml;&Egrave;&Ucirc;&iacute; &Ccedil;&auml; &Ecirc;&szlig;&aelig;&auml; &aring;&ETH;&aring; &Ccedil;&aacute;&Icirc;&Ccedil;&auml;&aring; &Yacute;&Ccedil;&Ntilde;&Ucirc;&aring;"
'txt(0).SetFocus
'Exit Sub
'End If
If Command3.Caption = "&Ccedil;&Ouml;&Ccedil;&Yacute;&aring;" Then
Command3.Caption = "&Iacute;&Yacute;&Ugrave;"

Else
Command3.Caption = "&Ccedil;&Ouml;&Ccedil;&Yacute;&aring;"
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 "&aacute;&Ccedil; &iacute;&auml;&Egrave;&Ucirc;&iacute; &Ccedil;&auml; &Ecirc;&szlig;&aelig;&auml; &aring;&ETH;&aring; &Ccedil;&aacute;&Icirc;&Ccedil;&auml;&aring; &Yacute;&Ccedil;&Ntilde;&Ucirc;&aring;"
'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("&aring;&aacute; &Ccedil;&auml;&Ecirc; &atilde;&Ecirc;&Atilde;&szlig;&Iuml; &Egrave;&Atilde;&auml;&szlig; &Ecirc;&Ntilde;&iacute;&Iuml; &Iacute;&ETH;&Yacute; &aring;&ETH;&Ccedil; &Ccedil;&aacute;&Yacute;&Ccedil;&iacute;&aacute;&i quest;", vbYesNo + vbQuestion, "&Ecirc;&Iacute;&ETH;&iacute;&Ntilde;")
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 ("&Ccedil;&aacute;&Ntilde;&THORN;&atilde; &Ccedil;&aacute;&Uacute;&Oacute;&szlig;&Ntilde;&ia cute;")
comSearch.AddItem ("tid")
comSearch.ListIndex = 0
End Sub



اخي هذه طريقتي الخاصه في ربط مع الديتابيس يوجد طريقه ثانيه ابسط من هذي سوف اقوم بشرحها لك
ان شاء الله
  #3  
قديم 21/04/2005, 10:29 AM
فنكشن فنكشن غير متواجد حالياً
عضو نشيط
 
تاريخ الانضمام: 22/04/2004
المشاركات: 829
السلام عليكم ورحمه الله وبركاته :

هذه الاكواد والطرق التي استخدمها :

رمز:
'تعريف متغير يمثل قاعدة البيانات
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  
قديم 21/04/2005, 10:39 AM
ابوعبيده ابوعبيده غير متواجد حالياً
عضو نشيط
 
تاريخ الانضمام: 12/12/2004
المشاركات: 294
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  
قديم 21/04/2005, 07:39 PM
صورة عضوية الزمان
الزمان الزمان غير متواجد حالياً
عضو متميز
 
تاريخ الانضمام: 22/02/2000
الإقامة: oman
المشاركات: 1,224
شكرا جزيلا للاخوة ابو عبيدة و فنكشن داعيا الله سبحانه وتعالى ان يوفقكم في حياتكم العلمية والعملية .
ولكن لم اجد تفسير كيف احول قاعدة البيانات الى ملف تنفيذي
وشكرا مرة اخرى ,,,,
  #6  
قديم 21/04/2005, 09:29 PM
ابوعبيده ابوعبيده غير متواجد حالياً
عضو نشيط
 
تاريخ الانضمام: 12/12/2004
المشاركات: 294
لا شكر على واجب اخي الكريم
اما من حيث كيف تحسب السجلات في قاعدة البيانات فهذا الكود

data1.recordset.movenext
data1.recordset.RecordCount

اما من حيث الملف التنفيذي اذهب الى
file
make project1 exe
وان شاء الله سوف تحصل على الملف التنفيذي
  #7  
قديم 23/04/2005, 10:36 AM
صورة عضوية الزمان
الزمان الزمان غير متواجد حالياً
عضو متميز
 
تاريخ الانضمام: 22/02/2000
الإقامة: oman
المشاركات: 1,224
اخي ابو عبيدة هذه الطريقة في التنفيذ تستخدم في برنامج الفجول بيسك بالنفس وانا اريده يكون في اكسس Access وارجو منك الافادة .
وشكرا,,,,,
  #8  
قديم 23/04/2005, 03:05 PM
ابوعبيده ابوعبيده غير متواجد حالياً
عضو نشيط
 
تاريخ الانضمام: 12/12/2004
المشاركات: 294
السلام عليكم اخي الكريم

هذه مشكله مايكروسوفت انك لا تسطيع عمل ملف تنفيذي في الاكسس
ولاكن توجد طريقه ثانيه وهي عمل رقم سري
حيث لا يمكن اي احد ان يرى قاعدة البيانات بدون الرقم السري
  #9  
قديم 23/04/2005, 06:40 PM
فنكشن فنكشن غير متواجد حالياً
عضو نشيط
 
تاريخ الانضمام: 22/04/2004
المشاركات: 829
اخي العزيز ابو عبيدة

الاحظ انك وضعت في المشاركة الرابعه وصاعدا الاكواد للتعامل مع الاداة Data وهي تعتمد على DAO وليس على ADO ...

وبالنسبه لما يتحدث عنه الاخ الزمان عن التحويل الى ملف exe فبالامكان تحويل الملف الى mde من القائمة ادوات ، ادوات مساعدة لقواعد البيانات ، انشاء ملف mde ..

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

واما بالنسبه لكلمه المرور لقاعدة بيانات اكسس فأسهل شيئ هو معرفه كلمه المرور لقاعدة بيانات من نوع اكسس صدقوني !!!

اخوكم طالب في : الحادي عشر
 


قواعد المشاركة
ليس بإمكانك إضافة مواضيع جديدة
ليس بإمكانك إضافة ردود
ليس بإمكانك رفع مرفقات
ليس بإمكانك تحرير مشاركاتك

رموز لغة HTML لا تعمل

الانتقال إلى


جميع الأوقات بتوقيت مسقط. الساعة الآن 05:10 PM.


سبلة العرب :: السنة السابعة والعشرون
لا تتحمل إدارة سبلة العرب أي مسئولية حول المواضيع المنشورة لأنها تعبر عن رأي كاتبها.