الأخوة الأفاضل .. أعاني مشكلة كبيرة أثناء استدعاء دالة DLookup حيث أن الدالة لا تعمل أبدا والسبب في ذلك هو أرتباط الجداول بقاعدة بيانات SQL SERVER ، هل من طريقة لتحويل الدالة أو أي صيغة أخرى تعمل عمل الدالة DLookup ؟
بارك الله فيكم ....
الأخوة الأفاضل .. أعاني مشكلة كبيرة أثناء استدعاء دالة DLookup حيث أن الدالة لا تعمل أبدا والسبب في ذلك هو أرتباط الجداول بقاعدة بيانات SQL SERVER ، هل من طريقة لتحويل الدالة أو أي صيغة أخرى تعمل عمل الدالة DLookup ؟
بارك الله فيكم ....
أخى الفاضل
المشكلة ليست فى الجداول المرتبطة
فالجدول المرتبط يعامل كالجدول العادى
المشكلة لديك فى صيغة الدالة
أخي العزيز أبو يوسف
ما تفضلت به كان صحيحا ، أنظر إلى الكود التالي :
Private Sub cmdMoveUp_Click()
Dim strsql, strsql2 As String
Dim ItemID, ItemID2 As String
Dim CP, CP2 As Integer
If Me.MainMenuItems <> "" Then
ItemID = Me.MainMenuItems
CP = Me.MainMenuItems.Column(2)
If CP > 1 Then '
CP2 = CP - 1
ItemID2 = DLookup("ID", "TB1", "SortNo = " & CP2)
strsql = "UPDATE TB1 SET TB1.SortNo = " & CP2 & " WHERE [TB1].[ID] = '" & ItemID & "'"
strsql2 = "UPDATE TB1 SET TB1.SortNo = " & CP & " WHERE [TB1].[ID] = '" & ItemID2 & "'"
CurrentDb.Execute strsql
CurrentDb.Execute strsql2
Me.MainMenuItems.Requery
Else
MsgBox "Cannot move up - already top of list!"
End If
Else
MsgBox "Select an Item to Move"
End If
Exit_cmdMoveUp:
Exit Sub
ErrHandler:
MsgBox Error$
Resume Exit_cmdMoveUp
End Subأعتقد أن المشكلة في أستدعاء قاعدة البيانات حيث الأمر CurrentDb.Execute strsql يخص قاعدة بيانات أكسس ، هل هناك طريقة لاستدعاء أو للأتصال بقاعدة بيانات sql server
مرفق المثال المطلوب وهو يعمل بشكل ممتاز في حالة إذا كانت القاعدة أكسس ، وعند القيام بتحويل القاعدة إلى sql لا يعمل ...
وهذا الموضوع من بدايته هنـــــــا
بارك الله فيك
الكود لا يوجد به اى مشاكل
ما الخطأ الذى يظهر لديك
يظهر الخطأ عند الكود التالي
ItemID2 = DLookup("ID", "TB1", "SortNo = " & CP2)ولكن عندما تكون قاعدة البيانات أكسس فإن هذا الخطأ لا يظهر
جرب التعديل البسيط للكود التالي
ItemID2 = DLookup("[iD]", "TB1", "SortNo=" & CP2)اضفت القوسين ( [] ) حول ID
حذفت المسافات في الشرط
إن شاء الله تمشي معك
أخي أبو يوسف الرسالة تظهر على النحو التالي :
أخي عبيدالله ، جربت ما تفضلت به .. ولكن المشكلة لا تزال موجودة ..
حفظكم الله ....
تم تعديل هذه المشاركة بواسطة hassaan100 في 23 مارس 2011 في 19:06
آسف جدا نسيت ان اضيف قوسين على اسم الحقل في الشرط.. جرب الكود بعد التعديل
ItemID2 = DLookup("[ID]", "TB1", "[SortNo]=" & CP2)لأني اعرف أن اسماء الحقول دائما تكون داخل قوسين من هذا النوع: []
أخي العزيز .. نفس المشكلة .. أشكرك على تفاعلك ...
أعتقد أن الدالة Dlookup لا تستدعي قيم الجدول إطلاقا ...
قد يكون الخطأ في أنواع الحقول
قد يكون الحقل SortNo (رقم) و cp2 (نص) مثلا وعند ذلك سيظهر خطأ
جرب واحذف الشرط وشوف النتيجة
أخي الكريم
ان ItemID2 كما هو واضح من الكود هو نص
ام المراد البحث عنه بالدالة dlookup هو رقم
واعتقد ان هذا هو الخطأ
الأخوة الأفاضل ،، أشكركم جزيل الشكر على تفاعلكم حفظكم الله ...
حاليا .. رسالة الخطأ لا تظهر ، ولكن المشكلة لاتزال مكانها ... ، لو تلاحظوا المثال المرفق السابق في المشاركة رقم 3 ستجدوا أن المثال يعمل 100% .. ولكن عند القيام بتغيير الجدول إلى جدول معمول بـ SQL SERVER فإن أي تحديثات تطرأ على النموذج فإنها لا تطرأ فعليا على الجدول المربوط ، مع العلم بأنها تطرأ مباشرة إذا كان الجدول أكسس وليس SQL SERVER ، وأعتقد أن الدالة التالية هي المسئولة عن ذلك :
CurrentDb.Execute strsql
CurrentDb.Execute strsql2
لا أعرف إذا كان هناك ما يقابل هذه الدالة في حين لو كانت قاعدة البيانات هي SQL SERVER وليست أكسس ...
بارك الله فيكم جميعا
تم تعديل هذه المشاركة بواسطة hassaan100 في 27 مارس 2011 في 08:58
UP
للرفع للأهمية القصوى
أخى الكريم
لا اعرف ما المشكلة لديك
فقد جربت الكود مع قاعدة بيانات mysql
و يعمل بشكل عادى و بدون مشاكل
اعتقد ان المشكلة فى الربط بقاعدة البيانات
أخي الفاضل أبو يوسف ، أعتقد أن مشكلتي هي نفس المشكلة في المشاركة التالية والتي لا أعرف هل وصل الأخ at_aziz إلى حل أم لا !
كود الحفظ لايعمل بعد تحويل الجداول الى SQL
على العموم جاري تجربة ما تفضلتم به في المشاركة السابقة ..
تم تعديل هذه المشاركة بواسطة hassaan100 في 3 أبريل 2011 في 08:52